Last active
October 6, 2018 14:51
-
-
Save leoetlino/54950eab6d1de860571889849e18fa99 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// utility functions (inlined in the actual executable) | |
void GameDataMgr::setFlag(const sead::SafeString& flagName, bool value) | |
{ | |
if (this->paramB.changeOnlyOnce) | |
return; | |
if (!TriggerParam::setBoolByKey(*this->paramB.param1, value, flag_name, this->paramB.x, 1LL, 1)) | |
return; | |
if (!this->paramB.propagateParam1Changes) | |
return; | |
TriggerParam::setBoolByKey(*this->paramB.param, value, flag_name, this->paramB.x, 1LL, 1); | |
} | |
bool GameDataMgr::flagIsSet(const sead::SafeString& flagName) | |
{ | |
bool value; | |
return TriggerParam::getFlagByKey(*this->param.param1, &value, flagName, this->param.x) && value; | |
} | |
// 0x7100DD0A88 | |
// called from GameScene | |
void GameDataMgr::getAndSetShrineQuestAndKassFlags() | |
{ | |
if (flagIsSet("DarkWoods_Giant_Clear") && !flagIsSet("DarkWoods_Finish")) | |
setFlag("DarkWoods_Giant_Clear", false); | |
if ( TriggerParam::getFlagByKey(*this->param.param1, &giant_ball1, "giant_ball1", this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, &giant_ball2, "giant_ball2", this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, &giant_ball3, "giant_ball3", this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, &giant_dungeon, "giant_dungeon", this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, &lithograph1, "MainField_DgnObj_RemainsLithogragh_A_02_789666109", this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, &lithograph2, "MainField_DgnObj_RemainsLithogragh_A_02_2456751716", this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, &lithograph3, "MainField_DgnObj_RemainsLithogragh_A_02_1822262999", this->param.x) ) | |
{ | |
if (giant_ball1 && !lithograph1 && !(this->flags & 0x40000)) | |
setFlag("MainField_DgnObj_RemainsLithogragh_A_02_789666109", true); | |
if (giant_ball2 && !lithograph2 && !(this->flags & 0x40000)) | |
setFlag("MainField_DgnObj_RemainsLithogragh_A_02_2456751716", true); | |
if (giant_ball3 && !lithograph3 && !(this->flags & 0x40000)) | |
setFlag("MainField_DgnObj_RemainsLithogragh_A_02_1822262999", true); | |
if (!giant_dungeon && giant_ball1 && giant_ball2 && giant_ball3) | |
setFlag("giant_dungeon", true); | |
} | |
if (flagIsSet("MainField_Weapon_Bow_071_2178255681")) | |
setFlag("MainField_Weapon_Bow_071_2178255681", false); | |
if (flagIsSet("BalladOfHeroes_Step02") && !flagIsSet("BalladOfHeroes_Step03")) | |
{ | |
int defeatedCount = | |
flagIsSet("Defeat_OneHitDungeon001") + | |
flagIsSet("Defeat_OneHitDungeon002") + | |
flagIsSet("Defeat_OneHitDungeon003") + | |
flagIsSet("Defeat_OneHitDungeon004"); | |
bool defeatedNonLockedOneHitDungeon = !Lock_OneHitDungeon001 && Defeat_OneHitDungeon001; | |
defeatedNonLockedOneHitDungeon |= !Lock_OneHitDungeon002 && Defeat_OneHitDungeon002; | |
defeatedNonLockedOneHitDungeon |= !Lock_OneHitDungeon003 && Defeat_OneHitDungeon003; | |
defeatedNonLockedOneHitDungeon |= !Lock_OneHitDungeon004 && Defeat_OneHitDungeon004; | |
if ( defeatedNonLockedOneHitDungeon && defeatedCount >= 1 ) | |
{ | |
if (!flagIsSet("BalladOfHeroes_Step02_Dungeon01")) | |
setFlag("BalladOfHeroes_Step02_Dungeon01", true); | |
if ( defeatedCount >= 2 ) | |
{ | |
if (!flagIsSet("BalladOfHeroes_Step02_Dungeon02")) | |
setFlag("BalladOfHeroes_Step02_Dungeon02", true); | |
if ( defeatedCount >= 3 ) | |
{ | |
if (!flagIsSet("BalladOfHeroes_Step02_Dungeon03")) | |
setFlag("BalladOfHeroes_Step02_Dungeon03", true); | |
if (defeatedCount >= 4 && !flagIsSet("BalladOfHeroes_Step2_Dungeon4")) | |
setFlag("BalladOfHeroes_Step2_Dungeon4", true); | |
} | |
} | |
} | |
} | |
if (flagIsSet("IsGet_Armor_005_Head") && | |
flagIsSet("IsGet_Armor_005_Upper") && | |
flagIsSet("IsGet_Armor_005_Lower") && | |
!(this->flags & 0x40000)) | |
{ | |
setFlag("CompleteDungeon_Finish", true); | |
} | |
if (flagIsSet("NightStoneBreak") && !flagIsSet("NightStoneDungeonAppear")) | |
setFlag("NightStoneBreak", false); | |
if (flagIsSet("Animal_Forest_Finish") && | |
flagIsSet("HateeluMini_Treasure_Finish") && | |
flagIsSet("Thunder_Sword_Finish") && | |
flagIsSet("Relief_Landing_Finish") && | |
flagIsSet("TwoWheels_Finish") && | |
flagIsSet("Shadow_Sign_Finish") && | |
flagIsSet("MouthofDragon_Finish") && | |
flagIsSet("BloodyMoonRelief_Finish") && | |
flagIsSet("Rito_BrosRock_Finish")) | |
{ | |
setFlag("Npc_Musician_Come", true); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void __fastcall GameDataMgr::getAndSetShrineQuestAndKassFlags(GameDataMgr *this) | |
{ | |
BOOL v2; // w0 | |
char v3; // w8 | |
int v4; // w9 | |
signed int v5; // w25 | |
bool v6; // w0 | |
BOOL v7; // w0 | |
sead::SafeStringBase::vtable *v8; // [xsp+0h] [xbp-140h] | |
char v9; // [xsp+8h] [xbp-138h] | |
char v10; // [xsp+9h] [xbp-137h] | |
char v11; // [xsp+Ah] [xbp-136h] | |
char v12; // [xsp+Bh] [xbp-135h] | |
char v13; // [xsp+Ch] [xbp-134h] | |
char v14; // [xsp+Dh] [xbp-133h] | |
int a2; // [xsp+10h] [xbp-130h] | |
char v16; // [xsp+14h] [xbp-12Ch] | |
char v17; // [xsp+15h] [xbp-12Bh] | |
char v18; // [xsp+16h] [xbp-12Ah] | |
char v19; // [xsp+17h] [xbp-129h] | |
int v20[2]; // [xsp+18h] [xbp-128h] | |
sead::SafeString a3; // [xsp+20h] [xbp-120h] | |
sead::SafeString v22; // [xsp+30h] [xbp-110h] | |
sead::SafeString v23; // [xsp+40h] [xbp-100h] | |
sead::SafeString v24; // [xsp+50h] [xbp-F0h] | |
sead::SafeString v25; // [xsp+60h] [xbp-E0h] | |
sead::SafeString v26; // [xsp+70h] [xbp-D0h] | |
sead::SafeString v27; // [xsp+80h] [xbp-C0h] | |
sead::SafeString v28; // [xsp+90h] [xbp-B0h] | |
sead::SafeString v29; // [xsp+A0h] [xbp-A0h] | |
sead::SafeString v30; // [xsp+B0h] [xbp-90h] | |
sead::SafeString v31; // [xsp+C0h] [xbp-80h] | |
sead::SafeString v32; // [xsp+D0h] [xbp-70h] | |
sead::SafeString v33; // [xsp+E0h] [xbp-60h] | |
sead::SafeString v34; // [xsp+F0h] [xbp-50h] | |
a3.vptr = &`vtable for'sead::SafeStringBase<char>; | |
a3.cstr = "DarkWoods_Giant_Clear"; | |
v22.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v22.cstr = "DarkWoods_Finish"; | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8, &a3, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 1, &v22, this->param.x) | |
&& (_BYTE)v8 | |
&& !BYTE1(v8) | |
&& !this->paramB.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->paramB.param1, 0, &a3, this->paramB.x, 1LL, 1) | |
&& this->paramB.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->paramB.param, 0, &a3, this->paramB.x, 1LL, 1); | |
} | |
a3.vptr = &`vtable for'sead::SafeStringBase<char>; | |
a3.cstr = "giant_ball1"; | |
v22.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v22.cstr = "giant_ball2"; | |
v23.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v23.cstr = "giant_ball3"; | |
v27.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v27.cstr = "MainField_DgnObj_RemainsLithogragh_A_02_1822262999"; | |
v24.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v24.cstr = "giant_dungeon"; | |
v25.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v25.cstr = "MainField_DgnObj_RemainsLithogragh_A_02_789666109"; | |
v26.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v26.cstr = "MainField_DgnObj_RemainsLithogragh_A_02_2456751716"; | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8, &a3, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 1, &v22, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 2, &v23, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 3, &v24, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 4, &v25, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 5, &v26, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 6, &v27, this->param.x) ) | |
{ | |
if ( (_BYTE)v8 | |
&& !BYTE4(v8) | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 1, &v25, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 1, &v25, this->param.x, 1LL, 0); | |
} | |
if ( BYTE1(v8) | |
&& !BYTE5(v8) | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 1, &v26, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 1, &v26, this->param.x, 1LL, 0); | |
} | |
if ( BYTE2(v8) | |
&& !BYTE6(v8) | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 1, &v27, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 1, &v27, this->param.x, 1LL, 0); | |
} | |
if ( !BYTE3(v8) | |
&& (_BYTE)v8 != 0 | |
&& BYTE1(v8) != 0 | |
&& BYTE2(v8) != 0 | |
&& !this->paramB.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->paramB.param1, 1, &v24, this->paramB.x, 1LL, 1) | |
&& this->paramB.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->paramB.param, 1, &v24, this->paramB.x, 1LL, 1); | |
} | |
} | |
a3.vptr = &`vtable for'sead::SafeStringBase<char>; | |
a3.cstr = "MainField_Weapon_Bow_071_2178255681"; | |
v2 = TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8, &a3, this->param.x); | |
if ( (_BYTE)v8 | |
&& v2 | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 0, &a3, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 0, &a3, this->param.x, 1LL, 0); | |
} | |
a3.vptr = &`vtable for'sead::SafeStringBase<char>; | |
a3.cstr = "BalladOfHeroes_Step02"; | |
v23.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v23.cstr = "Defeat_OneHitDungeon001"; | |
v24.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v24.cstr = "Defeat_OneHitDungeon002"; | |
v22.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v22.cstr = "BalladOfHeroes_Step03"; | |
v34.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v34.cstr = "BalladOfHeroes_Step2_Dungeon4"; | |
v25.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v25.cstr = "Defeat_OneHitDungeon003"; | |
v26.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v26.cstr = "Defeat_OneHitDungeon004"; | |
v27.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v27.cstr = "Lock_OneHitDungeon001"; | |
v28.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v28.cstr = "Lock_OneHitDungeon002"; | |
v29.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v29.cstr = "Lock_OneHitDungeon003"; | |
v30.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v30.cstr = "Lock_OneHitDungeon004"; | |
v31.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v31.cstr = "BalladOfHeroes_Step02_Dungeon01"; | |
v32.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v32.cstr = "BalladOfHeroes_Step02_Dungeon02"; | |
v33.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v33.cstr = "BalladOfHeroes_Step02_Dungeon03"; | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8, &a3, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 1, &v22, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 2, &v23, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 3, &v24, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 4, &v25, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 5, &v26, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 6, &v27, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 7, &v28, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v9, &v29, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v10, &v30, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v11, &v31, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v12, &v32, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v13, &v33, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v14, &v34, this->param.x) | |
&& (_BYTE)v8 | |
&& !BYTE1(v8) ) | |
{ | |
v3 = BYTE2(v8); | |
v4 = BYTE6(v8) == 0 && BYTE2(v8) != 0; | |
if ( BYTE3(v8) ) | |
{ | |
if ( BYTE2(v8) ) | |
v3 = 2; | |
else | |
v3 = 1; | |
v4 |= HIBYTE(v8) == 0; | |
} | |
if ( BYTE4(v8) ) | |
{ | |
++v3; | |
v4 |= v9 == 0; | |
} | |
if ( BYTE5(v8) ) | |
{ | |
if ( !((v4 | (v10 == 0)) & 1) ) | |
goto LABEL_105; | |
++v3; | |
} | |
else if ( !v4 ) | |
{ | |
goto LABEL_105; | |
} | |
v5 = v3; | |
if ( v3 >= 1 ) | |
{ | |
if ( !v11 | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 1, &v31, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 1, &v31, this->param.x, 1LL, 0); | |
} | |
if ( v5 >= 2 ) | |
{ | |
if ( !v12 | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 1, &v32, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 1, &v32, this->param.x, 1LL, 0); | |
} | |
if ( v5 >= 3 ) | |
{ | |
if ( !v13 | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 1, &v33, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 1, &v33, this->param.x, 1LL, 0); | |
} | |
if ( v5 >= 4 | |
&& !v14 | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 1, &v34, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 1, &v34, this->param.x, 1LL, 0); | |
} | |
} | |
} | |
} | |
} | |
LABEL_105: | |
a3.vptr = &`vtable for'sead::SafeStringBase<char>; | |
a3.cstr = "IsGet_Armor_005_Head"; | |
v22.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v22.cstr = "IsGet_Armor_005_Upper"; | |
v23.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v23.cstr = "IsGet_Armor_005_Lower"; | |
v24.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v24.cstr = "CompleteDungeon_Finish"; | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8, &a3, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 1, &v22, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 2, &v23, this->param.x) ) | |
{ | |
v6 = TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 3, &v24, this->param.x); | |
if ( !BYTE3(v8) | |
&& (_BYTE)v8 != 0 | |
&& v6 | |
&& BYTE1(v8) != 0 | |
&& BYTE2(v8) != 0 | |
&& !(this->flags & 0x40000) | |
&& !this->param.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->param.param1, 1, &v24, this->param.x, 1LL, 0) | |
&& this->param.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->param.param, 1, &v24, this->param.x, 1LL, 0); | |
} | |
} | |
} | |
} | |
a3.vptr = &`vtable for'sead::SafeStringBase<char>; | |
a3.cstr = "NightStoneBreak"; | |
v22.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v22.cstr = "NightStoneDungeonAppear"; | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8, &a3, this->param.x) | |
&& TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v8 + 1, &v22, this->param.x) | |
&& (_BYTE)v8 | |
&& !BYTE1(v8) | |
&& !this->paramB.changeOnlyOnce | |
&& TriggerParam::setBoolByKey(*this->paramB.param1, 0, &a3, this->paramB.x, 1LL, 1) | |
&& this->paramB.propagateParam1Changes ) | |
{ | |
TriggerParam::setBoolByKey(*this->paramB.param, 0, &a3, this->paramB.x, 1LL, 1); | |
} | |
a3.vptr = &`vtable for'sead::SafeStringBase<char>; | |
a3.cstr = "Animal_Forest_Finish"; | |
v22.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v22.cstr = "HateeluMini_Treasure_Finish"; | |
v23.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v23.cstr = "Thunder_Sword_Finish"; | |
v24.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v24.cstr = "Relief_Landing_Finish"; | |
v27.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v27.cstr = "TwoWheels_Finish"; | |
v25.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v25.cstr = "Shadow_Sign_Finish"; | |
v26.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v26.cstr = "MouthofDragon_Finish"; | |
v28.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v28.cstr = "BloodyMoonRelief_Finish"; | |
v29.vptr = &`vtable for'sead::SafeStringBase<char>; | |
v29.cstr = "Rito_BrosRock_Finish"; | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&a2, &a3, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&a2 + 1, &v22, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&a2 + 2, &v23, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&a2 + 3, &v24, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v16, &v25, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v17, &v26, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v18, &v27, this->param.x) ) | |
{ | |
if ( TriggerParam::getFlagByKey(*this->param.param1, (bool *)&v19, &v28, this->param.x) ) | |
{ | |
v7 = TriggerParam::getFlagByKey(*this->param.param1, (bool *)v20, &v29, this->param.x); | |
if ( (_BYTE)a2 ) | |
{ | |
if ( v7 ) | |
{ | |
if ( BYTE1(a2) ) | |
{ | |
if ( BYTE2(a2) ) | |
{ | |
if ( HIBYTE(a2) ) | |
{ | |
if ( v16 ) | |
{ | |
if ( v17 ) | |
{ | |
if ( v18 ) | |
{ | |
if ( v19 ) | |
{ | |
if ( LOBYTE(v20[0]) ) | |
{ | |
v8 = &`vtable for'sead::SafeStringBase<char>; | |
*(_QWORD *)&v9 = "Npc_Musician_Come"; | |
if ( !this->paramB.changeOnlyOnce ) | |
{ | |
if ( TriggerParam::setBoolByKey( | |
*this->paramB.param1, | |
1, | |
(const sead::SafeString *)&v8, | |
this->paramB.x, | |
1LL, | |
1) ) | |
{ | |
if ( this->paramB.propagateParam1Changes ) | |
TriggerParam::setBoolByKey( | |
*this->paramB.param, | |
1, | |
(const sead::SafeString *)&v8, | |
this->paramB.x, | |
1LL, | |
1); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment