From 3d7fcfc4a6a1fc7016145b39596775bcd32be5c1 Mon Sep 17 00:00:00 2001 From: fusion32 Date: Sat, 7 Jun 2025 17:15:40 -0300 Subject: race loading --- reference/game.c | 1628 ------------------------------------------------------ 1 file changed, 1628 deletions(-) (limited to 'reference') diff --git a/reference/game.c b/reference/game.c index d50249a..f0a4f51 100644 --- a/reference/game.c +++ b/reference/game.c @@ -29623,1225 +29623,6 @@ void __static_initialization_and_destruction_0(int __initialize_p,int __priority return; } -char * GetRaceName(int Race) - -{ - TRaceData *pTVar1; - - if (Race - 1U < 0x1ff) { - pTVar1 = RaceData + Race; - } - else { - error(&DAT_08102100,Race); - pTVar1 = (TRaceData *)0x0; - } - return pTVar1->Name; -} - - - -TOutfit GetRaceOutfit(int Race) - -{ - int iVar1; - anon_union_4_2_730cd3ca_for_TOutfit_2 aVar2; - TOutfit TVar3; - int in_stack_00000008; - - if (in_stack_00000008 - 1U < 0x1ff) { - iVar1 = RaceData[in_stack_00000008].Outfit.OutfitID; - aVar2 = RaceData[in_stack_00000008].Outfit.field_1; - } - else { - error(&DAT_08102140); - iVar1 = RaceData[1].Outfit.OutfitID; - aVar2 = RaceData[1].Outfit.field_1; - } - *(int *)Race = iVar1; - *(anon_union_4_2_730cd3ca_for_TOutfit_2 *)(Race + 4) = aVar2; - TVar3.field_1 = aVar2; - TVar3.OutfitID = Race; - return TVar3; -} - - - -bool GetRaceNoSummon(int Race) - -{ - undefined1 uVar1; - - if (Race - 1U < 0x1ff) { - uVar1 = RaceData[Race].NoSummon; - } - else { - error(&DAT_08102180,Race); - uVar1 = 1; - } - return (bool)uVar1; -} - - - -bool GetRaceNoConvince(int Race) - -{ - undefined1 uVar1; - - if (Race - 1U < 0x1ff) { - uVar1 = RaceData[Race].NoConvince; - } - else { - error(&DAT_081021c0,Race); - uVar1 = 1; - } - return (bool)uVar1; -} - - - -bool GetRaceNoIllusion(int Race) - -{ - undefined1 uVar1; - - if (Race - 1U < 0x1ff) { - uVar1 = RaceData[Race].NoIllusion; - } - else { - error(&DAT_08102200,Race); - uVar1 = 1; - } - return (bool)uVar1; -} - - - -bool GetRaceNoParalyze(int Race) - -{ - undefined1 uVar1; - - if (Race - 1U < 0x1ff) { - uVar1 = RaceData[Race].NoParalyze; - } - else { - error(&DAT_08102240,Race); - uVar1 = 1; - } - return (bool)uVar1; -} - - - -int GetRaceSummonCost(int Race) - -{ - int iVar1; - - if (Race - 1U < 0x1ff) { - iVar1 = RaceData[Race].SummonCost; - } - else { - error(&DAT_08102280,Race); - iVar1 = 0; - } - return iVar1; -} - - - -int GetRacePoison(int Race) - -{ - int iVar1; - - if (Race - 1U < 0x1ff) { - iVar1 = RaceData[Race].Poison; - } - else { - error(&DAT_081022c0,Race); - iVar1 = 0; - } - return iVar1; -} - - - -bool GetRaceUnpushable(int Race) - -{ - undefined1 uVar1; - - if (Race - 1U < 0x1ff) { - uVar1 = RaceData[Race].Unpushable; - } - else { - error(&DAT_08102300,Race); - uVar1 = 1; - } - return (bool)uVar1; -} - - - -void LoadRace(char *FileName) - -{ - TReadScriptFile *pTVar1; - char cVar2; - char *pcVar3; - TSpellData *pTVar4; - TItemData *this; - ulong uVar5; - ulong *puVar6; - int iVar7; - TSkillData *pTVar8; - char *pcVar9; - int iVar10; - int iVar11; - int SkillNr; - char *pcVar12; - char *pcVar13; - undefined1 uVar14; - char *Impact; - TRaceData *R; - char *Shape; - TOutfit HelpOutfit; - ObjectType local_402c [4]; - char local_401c [4]; - char Ident [30]; - TReadScriptFile Script; - - uVar14 = &stack0x00000000 == (undefined1 *)0x406c; - pcVar3 = FileName; - // try { // try from 080a2768 to 080a277a has its CatchHandler @ 080a3a74 - print(); - TReadScriptFile::TReadScriptFile((TReadScriptFile *)(Ident + 0x1c)); - // try { // try from 080a2788 to 080a39ea has its CatchHandler @ 080a3a57 - TReadScriptFile::open((TReadScriptFile *)(Ident + 0x1c),FileName,(int)pcVar3); - pcVar3 = TReadScriptFile::readIdentifier((TReadScriptFile *)(Ident + 0x1c)); - iVar10 = 0xb; - pcVar9 = "racenumber"; - do { - if (iVar10 == 0) break; - iVar10 = iVar10 + -1; - uVar14 = *pcVar3 == *pcVar9; - pcVar3 = pcVar3 + 1; - pcVar9 = pcVar9 + 1; - } while ((bool)uVar14); - if (!(bool)uVar14) { - TReadScriptFile::error((TReadScriptFile *)(Ident + 0x1c),"race number expected"); - } - pcVar3 = (char *)0x3d; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'='); - iVar10 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - if (0x1fe < iVar10 - 1U) { - pcVar3 = "illegal race number"; - TReadScriptFile::error((TReadScriptFile *)(Ident + 0x1c),"illegal race number"); - } - if (RaceData[iVar10].Name[0] != '\0') { - pcVar3 = "race already defined"; - // try { // try from 080a3a17 to 080a3a51 has its CatchHandler @ 080a3a57 - TReadScriptFile::error((TReadScriptFile *)(Ident + 0x1c),"race already defined"); - } - RaceData[iVar10].Outfit.field_1 = (anon_union_4_2_730cd3ca_for_TOutfit_2)0x0; - RaceData[iVar10].Outfit.OutfitID = iVar10; - do { - do { - TReadScriptFile::nextToken((TReadScriptFile *)(Ident + 0x1c)); - if (stack0xffffc004 == 0) { - TReadScriptFile::close((TReadScriptFile *)(Ident + 0x1c),(int)pcVar3); - // try { // try from 080a39f4 to 080a39f8 has its CatchHandler @ 080a3a74 - TReadScriptFile::~TReadScriptFile((TReadScriptFile *)(Ident + 0x1c),(int)pcVar3); - return; - } - uVar14 = stack0xffffc004 == 1; - if (!(bool)uVar14) { - TReadScriptFile::error((TReadScriptFile *)(Ident + 0x1c),"identifier expected"); - } - pcVar3 = TReadScriptFile::getIdentifier((TReadScriptFile *)(Ident + 0x1c)); - strcpy(local_401c,pcVar3); - pcVar3 = (char *)0x3d; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'='); - iVar11 = 5; - pcVar9 = local_401c; - pcVar12 = "name"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pcVar3 = TReadScriptFile::readString((TReadScriptFile *)(Ident + 0x1c)); - strcpy(RaceData[iVar10].Name,pcVar3); - } - iVar11 = 8; - pcVar9 = local_401c; - pcVar12 = "article"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pcVar3 = TReadScriptFile::readString((TReadScriptFile *)(Ident + 0x1c)); - uVar14 = RaceData[iVar10].Article == (char *)0x0; - strcpy(RaceData[iVar10].Article,pcVar3); - } - iVar11 = 7; - pcVar9 = local_401c; - pcVar12 = "outfit"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pcVar3 = Ident + 0x1c; - uVar14 = &RaceData[iVar10].Outfit == (TOutfit *)0x0; - TOutfit::load(&RaceData[iVar10].Outfit,(TReadScriptFile *)pcVar3); - } - iVar11 = 7; - pcVar9 = local_401c; - pcVar12 = "corpse"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - ObjectType::setTypeID((ObjectType *)&HelpOutfit.field_1,iVar11); - ObjectType::setTypeID(&RaceData[iVar10].MaleCorpse,(int)HelpOutfit.field_1); - ObjectType::setTypeID(local_402c,RaceData[iVar10].MaleCorpse.TypeID); - uVar14 = &RaceData[iVar10].FemaleCorpse == (ObjectType *)0x0; - ObjectType::setTypeID(local_402c,RaceData[iVar10].MaleCorpse.TypeID); - ObjectType::setTypeID(&RaceData[iVar10].FemaleCorpse,local_402c[0].TypeID); - pcVar3 = (char *)RaceData[iVar10].FemaleCorpse.TypeID; - ObjectType::setTypeID((ObjectType *)&HelpOutfit.field_1,(int)pcVar3); - } - iVar11 = 8; - pcVar9 = local_401c; - pcVar12 = "corpses"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - ObjectType::setTypeID(local_402c,iVar11); - ObjectType::setTypeID(&RaceData[iVar10].MaleCorpse,local_402c[0].TypeID); - ObjectType::setTypeID - ((ObjectType *)&HelpOutfit.field_1,RaceData[iVar10].MaleCorpse.TypeID); - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - uVar14 = &RaceData[iVar10].FemaleCorpse == (ObjectType *)0x0; - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - ObjectType::setTypeID(local_402c,iVar11); - ObjectType::setTypeID(&RaceData[iVar10].FemaleCorpse,local_402c[0].TypeID); - pcVar3 = (char *)RaceData[iVar10].FemaleCorpse.TypeID; - ObjectType::setTypeID((ObjectType *)&HelpOutfit.field_1,(int)pcVar3); - } - iVar11 = 6; - pcVar9 = local_401c; - pcVar12 = "blood"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pcVar9 = TReadScriptFile::readIdentifier((TReadScriptFile *)(Ident + 0x1c)); - iVar11 = 6; - pcVar12 = pcVar9; - pcVar13 = "blood"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].Blood = BT_BLOOD; - } - else { - iVar11 = 6; - pcVar12 = pcVar9; - pcVar13 = "slime"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].Blood = BT_SLIME; - } - else { - iVar11 = 6; - pcVar12 = pcVar9; - pcVar13 = "bones"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].Blood = BT_BONES; - } - else { - iVar11 = 5; - pcVar12 = pcVar9; - pcVar13 = "fire"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].Blood = BT_FIRE; - } - else { - iVar11 = 7; - pcVar12 = "energy"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].Blood = BT_ENERGY; - } - else { - pcVar3 = "unknown blood type"; - TReadScriptFile::error - ((TReadScriptFile *)(Ident + 0x1c), - "unknown blood type"); - } - } - } - } - } - } - iVar11 = 0xb; - pcVar9 = local_401c; - pcVar12 = "experience"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - RaceData[iVar10].ExperiencePoints = iVar11; - } - iVar11 = 0xb; - pcVar9 = local_401c; - pcVar12 = "summoncost"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - RaceData[iVar10].SummonCost = iVar11; - } - iVar11 = 0xe; - pcVar9 = local_401c; - pcVar12 = "fleethreshold"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - RaceData[iVar10].FleeThreshold = iVar11; - } - iVar11 = 7; - pcVar9 = local_401c; - pcVar12 = "attack"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - RaceData[iVar10].Attack = iVar11; - } - iVar11 = 7; - pcVar9 = local_401c; - pcVar12 = "defend"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - RaceData[iVar10].Defend = iVar11; - } - iVar11 = 6; - pcVar9 = local_401c; - pcVar12 = "armor"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - RaceData[iVar10].Armor = iVar11; - } - iVar11 = 7; - pcVar9 = local_401c; - pcVar12 = "poison"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - RaceData[iVar10].Poison = iVar11; - } - iVar11 = 0xb; - pcVar9 = local_401c; - pcVar12 = "losetarget"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - RaceData[iVar10].LoseTarget = iVar11; - } - iVar11 = 9; - pcVar9 = local_401c; - pcVar12 = "strategy"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = 0; - do { - if (iVar11 != 0) { - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - } - iVar7 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - *(int *)(iVar10 * 0x150 + 0x81c47b8 + iVar11 * 4) = iVar7; - iVar11 = iVar11 + 1; - uVar14 = iVar11 == 3; - } while (iVar11 < 4); - pcVar3 = (char *)0x29; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),')'); - } - iVar11 = 6; - pcVar9 = local_401c; - pcVar12 = "flags"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pcVar3 = (char *)0x7b; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'{'); - do { - pcVar9 = TReadScriptFile::readIdentifier((TReadScriptFile *)(Ident + 0x1c)); - iVar11 = 10; - pcVar12 = pcVar9; - pcVar13 = "kickboxes"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].KickBoxes = true; - } - iVar11 = 0xe; - pcVar12 = pcVar9; - pcVar13 = "kickcreatures"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].KickCreatures = true; - } - iVar11 = 0xd; - pcVar12 = pcVar9; - pcVar13 = "seeinvisible"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].SeeInvisible = true; - } - iVar11 = 0xb; - pcVar12 = pcVar9; - pcVar13 = "unpushable"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].Unpushable = true; - } - iVar11 = 0x11; - pcVar12 = pcVar9; - pcVar13 = "distancefighting"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].DistanceFighting = true; - } - iVar11 = 9; - pcVar12 = pcVar9; - pcVar13 = "nosummon"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoSummon = true; - } - iVar11 = 0xb; - pcVar12 = pcVar9; - pcVar13 = "noconvince"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoConvince = true; - } - iVar11 = 0xb; - pcVar12 = pcVar9; - pcVar13 = "noillusion"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoIllusion = true; - } - iVar11 = 10; - pcVar12 = pcVar9; - pcVar13 = "noburning"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoBurning = true; - } - iVar11 = 9; - pcVar12 = pcVar9; - pcVar13 = "nopoison"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoPoison = true; - } - iVar11 = 9; - pcVar12 = pcVar9; - pcVar13 = "noenergy"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoEnergy = true; - } - iVar11 = 6; - pcVar12 = pcVar9; - pcVar13 = "nohit"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoHit = true; - } - iVar11 = 0xc; - pcVar12 = pcVar9; - pcVar13 = "nolifedrain"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar12 == *pcVar13; - pcVar12 = pcVar12 + 1; - pcVar13 = pcVar13 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoLifeDrain = true; - } - iVar11 = 0xb; - pcVar12 = "noparalyze"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - RaceData[iVar10].NoParalyze = true; - } - cVar2 = TReadScriptFile::readSpecial((TReadScriptFile *)(Ident + 0x1c)); - uVar14 = cVar2 == '}'; - } while (!(bool)uVar14); - } - iVar11 = 7; - pcVar9 = local_401c; - pcVar12 = "skills"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'{'); - do { - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - pcVar3 = TReadScriptFile::readIdentifier((TReadScriptFile *)(Ident + 0x1c)); - iVar11 = GetSkillByName(pcVar3); - if (iVar11 == -1) { - TReadScriptFile::error - ((TReadScriptFile *)(Ident + 0x1c),"unknown skill name"); - } - iVar7 = RaceData[iVar10].Skills + 1; - RaceData[iVar10].Skills = iVar7; - pTVar8 = vector::operator()(&RaceData[iVar10].Skill,iVar7); - pTVar8->Nr = iVar11; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - pTVar1 = (TReadScriptFile *)(Ident + 0x1c); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar8->Actual = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar8->Minimum = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar8->Maximum = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar8->NextLevel = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar8->FactorPercent = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar8->AddLevel = iVar11; - pcVar3 = (char *)0x29; - TReadScriptFile::readSymbol(pTVar1,')'); - cVar2 = TReadScriptFile::readSpecial(pTVar1); - uVar14 = cVar2 == '}'; - } while (!(bool)uVar14); - } - iVar11 = 5; - pcVar9 = local_401c; - pcVar12 = "talk"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'{'); - do { - RaceData[iVar10].Talks = RaceData[iVar10].Talks + 1; - pcVar3 = TReadScriptFile::readString((TReadScriptFile *)(Ident + 0x1c)); - uVar5 = AddDynamicString(pcVar3); - pcVar3 = (char *)RaceData[iVar10].Talks; - puVar6 = vector<>::operator()(&RaceData[iVar10].Talk,(int)pcVar3); - *puVar6 = uVar5; - cVar2 = TReadScriptFile::readSpecial((TReadScriptFile *)(Ident + 0x1c)); - uVar14 = cVar2 == '}'; - } while (!(bool)uVar14); - } - iVar11 = 10; - pcVar9 = local_401c; - pcVar12 = "inventory"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'{'); - do { - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = RaceData[iVar10].Items + 1; - RaceData[iVar10].Items = iVar11; - this = vector::operator()(&RaceData[iVar10].Item,iVar11); - pTVar1 = (TReadScriptFile *)(Ident + 0x1c); - iVar11 = TReadScriptFile::readNumber(pTVar1); - ObjectType::setTypeID(local_402c,iVar11); - ObjectType::setTypeID(&this->Type,local_402c[0].TypeID); - ObjectType::setTypeID((ObjectType *)&HelpOutfit.field_1,(this->Type).TypeID); - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - this->Maximum = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - this->Probability = iVar11; - pcVar3 = (char *)0x29; - TReadScriptFile::readSymbol(pTVar1,')'); - cVar2 = TReadScriptFile::readSpecial(pTVar1); - uVar14 = cVar2 == '}'; - } while (!(bool)uVar14); - } - iVar11 = 7; - pcVar9 = local_401c; - pcVar12 = "spells"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - } while (!(bool)uVar14); - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'{'); - do { - iVar11 = RaceData[iVar10].Spells + 1; - uVar14 = iVar11 == 0; - RaceData[iVar10].Spells = iVar11; - pTVar4 = vector::operator()(&RaceData[iVar10].Spell,iVar11); - pcVar3 = TReadScriptFile::readIdentifier((TReadScriptFile *)(Ident + 0x1c)); - iVar11 = 6; - pcVar9 = pcVar3; - pcVar12 = "actor"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Shape = SHAPE_ACTOR; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ShapeParam1 = iVar11; -LAB_080a2c00: - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),')'); - } - else { - iVar11 = 7; - pcVar9 = pcVar3; - pcVar12 = "victim"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Shape = SHAPE_VICTIM; -LAB_080a2b8a: - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ShapeParam1 = iVar11; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - pTVar1 = (TReadScriptFile *)(Ident + 0x1c); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ShapeParam2 = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ShapeParam3 = iVar11; - goto LAB_080a2c00; - } - iVar11 = 7; - pcVar9 = pcVar3; - pcVar12 = "origin"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Shape = SHAPE_ORIGIN; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ShapeParam1 = iVar11; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ShapeParam2 = iVar11; - goto LAB_080a2c00; - } - iVar11 = 0xc; - pcVar9 = pcVar3; - pcVar12 = "destination"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Shape = SHAPE_DESTINATION; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ShapeParam1 = iVar11; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - pTVar1 = (TReadScriptFile *)(Ident + 0x1c); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ShapeParam2 = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ShapeParam3 = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ShapeParam4 = iVar11; - goto LAB_080a2c00; - } - iVar11 = 6; - pcVar9 = "angle"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar3 == *pcVar9; - pcVar3 = pcVar3 + 1; - pcVar9 = pcVar9 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Shape = SHAPE_ANGLE; - goto LAB_080a2b8a; - } - TReadScriptFile::error((TReadScriptFile *)(Ident + 0x1c),"unknown spell shape"); - } - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'I'); - pcVar3 = TReadScriptFile::readIdentifier((TReadScriptFile *)(Ident + 0x1c)); - iVar11 = 7; - pcVar9 = pcVar3; - pcVar12 = "damage"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Impact = IMPACT_DAMAGE; - goto LAB_080a2f08; - } - iVar11 = 6; - pcVar9 = pcVar3; - pcVar12 = "field"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Impact = IMPACT_FIELD; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ImpactParam1 = iVar11; -LAB_080a2d71: - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),')'); - } - else { - iVar11 = 8; - pcVar9 = pcVar3; - pcVar12 = "healing"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Impact = IMPACT_HEALING; -LAB_080a2d18: - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ImpactParam1 = iVar11; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ImpactParam2 = iVar11; - goto LAB_080a2d71; - } - iVar11 = 6; - pcVar9 = pcVar3; - pcVar12 = "speed"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Impact = IMPACT_SPEED; -LAB_080a2f08: - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ImpactParam1 = iVar11; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - pTVar1 = (TReadScriptFile *)(Ident + 0x1c); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ImpactParam2 = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ImpactParam3 = iVar11; - goto LAB_080a2d71; - } - iVar11 = 8; - pcVar9 = pcVar3; - pcVar12 = "drunken"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Impact = IMPACT_DRUNKEN; - goto LAB_080a2f08; - } - iVar11 = 9; - pcVar9 = pcVar3; - pcVar12 = "strength"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Impact = IMPACT_STRENGTH; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ImpactParam1 = iVar11; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - pTVar1 = (TReadScriptFile *)(Ident + 0x1c); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ImpactParam2 = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); - iVar11 = TReadScriptFile::readNumber(pTVar1); - pTVar4->ImpactParam3 = iVar11; - TReadScriptFile::readSymbol(pTVar1,','); -LAB_080a2e6c: - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ImpactParam4 = iVar11; - goto LAB_080a2d71; - } - iVar11 = 7; - pcVar9 = pcVar3; - pcVar12 = "outfit"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar9 == *pcVar12; - pcVar9 = pcVar9 + 1; - pcVar12 = pcVar12 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Impact = IMPACT_OUTFIT; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),'('); - TOutfit::load((TOutfit *)&Shape,(TReadScriptFile *)(Ident + 0x1c)); - pTVar4->ImpactParam1 = (int)Shape; - pTVar4->ImpactParam2 = (uint)(ushort)HelpOutfit.OutfitID; - pTVar4->ImpactParam3 = (uint)HelpOutfit.OutfitID._2_2_; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),','); - goto LAB_080a2e6c; - } - iVar11 = 7; - pcVar9 = "summon"; - do { - if (iVar11 == 0) break; - iVar11 = iVar11 + -1; - uVar14 = *pcVar3 == *pcVar9; - pcVar3 = pcVar3 + 1; - pcVar9 = pcVar9 + 1; - } while ((bool)uVar14); - if ((bool)uVar14) { - pTVar4->Impact = IMPACT_SUMMON; - goto LAB_080a2d18; - } - TReadScriptFile::error((TReadScriptFile *)(Ident + 0x1c),"unknown spell impact"); - } - pcVar3 = (char *)0x3a; - TReadScriptFile::readSymbol((TReadScriptFile *)(Ident + 0x1c),':'); - iVar11 = TReadScriptFile::readNumber((TReadScriptFile *)(Ident + 0x1c)); - pTVar4->Delay = iVar11; - if (iVar11 == 0) { - pcVar3 = "zero spell delay"; - TReadScriptFile::error((TReadScriptFile *)(Ident + 0x1c),"zero spell delay"); - } - cVar2 = TReadScriptFile::readSpecial((TReadScriptFile *)(Ident + 0x1c)); - } while (cVar2 != '}'); - } while( true ); -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void LoadRaces(void) - -{ - char *__s; - dirent *DirEntry; - DIR *__dirp; - dirent *pdVar1; - size_t sVar2; - undefined4 *puVar3; - int iVar4; - char *s; - char *pcVar5; - char *pcVar6; - bool bVar7; - DIR *WorkDir; - char FileName [4096]; - - __dirp = opendir(MONSTERPATH); - if (__dirp == (DIR *)0x0) { - error("LoadRaces: Unterverzeichnis %s nicht gefunden\n",MONSTERPATH); - puVar3 = (undefined4 *)__cxa_allocate_exception(4); - *puVar3 = "Cannot load races"; - // WARNING: Subroutine does not return - __cxa_throw(puVar3,char_const*::typeinfo,0); - } - do { - do { - pdVar1 = readdir(__dirp); - if (pdVar1 == (dirent *)0x0) { - closedir(__dirp); - return; - } - __s = pdVar1->d_name; - sVar2 = strlen(__s); - bVar7 = sVar2 == 4; - } while (sVar2 < 5); - iVar4 = 4; - pcVar5 = __s + (sVar2 - 4); - pcVar6 = ".mon"; - do { - if (iVar4 == 0) break; - iVar4 = iVar4 + -1; - bVar7 = *pcVar5 == *pcVar6; - pcVar5 = pcVar5 + 1; - pcVar6 = pcVar6 + 1; - } while (bVar7); - if (bVar7) { - sprintf((char *)&WorkDir,"%s/%s",MONSTERPATH,__s); - // try { // try from 080a3b22 to 080a3b7f has its CatchHandler @ 080a3b80 - LoadRace((char *)&WorkDir); - } - } while( true ); -} - - - // DWARF original prototype: void TAttackWave(TAttackWave * this) void __thiscall TAttackWave::TAttackWave(TAttackWave *this) @@ -46873,415 +45654,6 @@ void __static_initialization_and_destruction_0(int __initialize_p,int __priority } - -int GetSkillByName(char *Name) - -{ - int iVar1; - byte *pbVar2; - byte *pbVar3; - bool bVar4; - bool bVar5; - bool bVar6; - - iVar1 = 6; - bVar4 = &stack0xfffffffc < (undefined1 *)0xc; - bVar6 = &stack0x00000000 == (undefined1 *)0x10; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)0x80f09da; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar4 = *pbVar2 < *pbVar3; - bVar6 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar6); - iVar1 = 0; - bVar5 = (!bVar4 && !bVar6) < bVar4; - bVar4 = (!bVar4 && !bVar6) == bVar4; - if (!bVar4) { - iVar1 = 0xb; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"magiclevel"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 1; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 10; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"hitpoints"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 2; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 5; - pbVar2 = (byte *)Name; - pbVar3 = &DAT_081075e9; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 3; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 0xb; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"gostrength"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 4; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 0xe; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"carrystrength"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 5; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 10; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"shielding"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 6; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 0x11; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"distancefighting"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 7; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 0xe; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"swordfighting"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 8; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 0xd; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"clubfighting"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 9; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 0xc; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"axefighting"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 10; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 0xd; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"fistfighting"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0xb; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 0xd; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"magicdefense"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0xc; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 8; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"fishing"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0xd; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 7; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"eating"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0xe; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 8; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"shining"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0xf; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 9; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)0x81028c5; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0x10; - bVar5 = (!bVar6 && !bVar4) < - bVar6; - bVar4 = (!bVar6 && !bVar4) == - bVar6; - if (!bVar4) { - iVar1 = 7; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)0x81028da; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < * - pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0x11; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 8; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)0x81028d0; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0x12; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 7; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)0x81028e3; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0x13; - bVar6 = (!bVar5 && !bVar4) < bVar5; - bVar4 = (!bVar5 && !bVar4) == bVar5; - if (!bVar4) { - iVar1 = 8; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"drunken"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0x14; - bVar5 = (!bVar6 && !bVar4) < bVar6; - bVar4 = (!bVar6 && !bVar4) == bVar6; - if (!bVar4) { - iVar1 = 0xb; - pbVar2 = (byte *)Name; - pbVar3 = (byte *)"manashield"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar5 = *pbVar2 < *pbVar3; - bVar4 = *pbVar2 == *pbVar3; - pbVar2 = pbVar2 + 1; - pbVar3 = pbVar3 + 1; - } while (bVar4); - iVar1 = 0x15; - bVar6 = (!bVar5 && !bVar4) < bVar5 - ; - bVar4 = (!bVar5 && !bVar4) == - bVar5; - if (!bVar4) { - iVar1 = 0xb; - pbVar2 = (byte *)"soulpoints"; - do { - if (iVar1 == 0) break; - iVar1 = iVar1 + -1; - bVar6 = (byte)*Name < - *pbVar2; - bVar4 = *Name == *pbVar2; - Name = (char *)((byte *) - Name + 1); - pbVar2 = pbVar2 + 1; - } while (bVar4); - iVar1 = 0x16; - if ((!bVar6 && !bVar4) != bVar6) { - iVar1 = -1; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return iVar1; -} - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void InitCrskill(void) - -{ - return; -} - - - -// WARNING: Unknown calling convention -- yet parameter storage is locked - -void ExitCrskill(void) - -{ - return; -} - - - // WARNING: Unknown calling convention -- yet parameter storage is locked void _GLOBAL__I__Z14GetSkillByNamePc(void) -- cgit v1.2.3