diff --git a/missions.cpp b/missions.cpp index 7bcdc94..86bdd7d 100644 --- a/missions.cpp +++ b/missions.cpp @@ -1,28 +1,28 @@ #include"pinball.h" //----- (0100E657) -------------------------------------------------------- -void __userpurge WaitingDeploymentController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge WaitingDeploymentController(int a1, int a2, struct TPinballComponent* a3) { -char *v3; // eax + char* v3; // eax -switch ( a2 ) -{ -case 63: -if ( (struct TPinballComponent *)dword_1023838 == a3 || (struct TPinballComponent *)dword_1023840 == a3 ) -{ -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -} -break; -case 66: -TTextBox::Clear(dword_1023E24, a1); -dword_1025048 = 0; -break; -case 67: -v3 = get_rc_string(50, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -break; -} + switch (a2) + { + case 63: + if ((struct TPinballComponent*)dword_1023838 == a3 || (struct TPinballComponent*)dword_1023840 == a3) + { + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + } + break; + case 66: + TTextBox::Clear(dword_1023E24, a1); + dword_1025048 = 0; + break; + case 67: + v3 = get_rc_string(50, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + break; + } } // 1023838: using guessed type int dword_1023838; // 1023840: using guessed type int dword_1023840; @@ -30,234 +30,234 @@ break; // 1025048: using guessed type int dword_1025048; //----- (0100E6D2) -------------------------------------------------------- -void __stdcall SelectMissionController(int a1, struct TPinballComponent *a2) +void __stdcall SelectMissionController(int a1, struct TPinballComponent* a2) { -signed int v2; // esi -void (__thiscall ***v3)(_DWORD, signed int, _DWORD); // edi -void (__thiscall ***v4)(_DWORD, signed int, _DWORD); // edi -char *v5; // eax -void (__stdcall ***v6)(signed int, _DWORD); // ecx -char *v7; // eax -CHAR *v8; // ST58_4 -CHAR *v9; // eax -int v10; // esi -int v11; // ST58_4 -CHAR *v12; // eax -signed int v13; // [esp+58h] [ebp-54h] -char Dest; // [esp+68h] [ebp-44h] + signed int v2; // esi + void(__thiscall * **v3)(_DWORD, signed int, _DWORD); // edi + void(__thiscall * **v4)(_DWORD, signed int, _DWORD); // edi + char* v5; // eax + void(__stdcall * **v6)(signed int, _DWORD); // ecx + char* v7; // eax + CHAR* v8; // ST58_4 + CHAR* v9; // eax + int v10; // esi + int v11; // ST58_4 + CHAR* v12; // eax + signed int v13; // [esp+58h] [ebp-54h] + char Dest; // [esp+68h] [ebp-44h] -v2 = 0; -if ( a1 == 45 || a1 == 47 ) -{ -if ( (struct TPinballComponent *)dword_1023978 == a2 ) -LABEL_83: -MissionControl(67, a2); -} -else if ( a1 == 63 ) -{ -if ( (struct TPinballComponent *)dword_1023B84 == a2 ) -v2 = 1; -if ( (struct TPinballComponent *)dword_1023B8C == a2 ) -v2 = 2; -if ( (struct TPinballComponent *)dword_1023B94 == a2 ) -v2 = 3; -if ( v2 ) -{ -if ( *(_DWORD *)(dword_1023B9C + 6) == 7 ) -{ -*(_DWORD *)(dword_1023B9C + 6) = 0; -v2 = 4; -} -switch ( (**(int (__stdcall ***)(signed int, _DWORD))dword_1023CF4)(37, 0.0) ) -{ -case 1: -switch ( v2 ) -{ -case 1: -v13 = 3; -break; -case 2: -v13 = 4; -break; -case 3: -v13 = 2; -break; -default: -v13 = 5; -break; -} -goto LABEL_71; -case 2: -case 3: -switch ( v2 ) -{ -case 1: -v13 = 9; -break; -case 2: -v13 = 11; -break; -case 3: -v13 = 10; -break; -default: -LABEL_69: -v13 = 16; -break; -} -goto LABEL_71; -case 4: -case 5: -switch ( v2 ) -{ -case 1: -v13 = 6; -break; -case 2: -v13 = 8; -break; -case 3: -v13 = 7; -break; -default: -LABEL_70: -v13 = 15; -break; -} -goto LABEL_71; -case 6: -case 7: -switch ( v2 ) -{ -case 1: -v13 = 12; -break; -case 2: -v13 = 13; -break; -case 3: -v13 = 14; -break; -default: -LABEL_68: -v13 = 17; -break; -} -goto LABEL_71; -case 8: -case 9: -switch ( v2 ) -{ -case 1: -goto LABEL_70; -case 2: -goto LABEL_69; -case 3: -goto LABEL_68; -} -v13 = 18; -LABEL_71: -*(_DWORD *)(dword_1023888 + 6) = v13; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023888)(15, 2.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023BBC)(4, 0.0); -goto LABEL_83; -default: -return; -} -} -else if ( (struct TPinballComponent *)dword_1023870 == a2 -&& light_on((struct component_tag *)&lite56) -&& (**(int (__stdcall ***)(signed int, _DWORD))dword_1023978)(37, 0.0) ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023888)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023BBC)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023CFC)(26, -1.0); -if ( light_on((struct component_tag *)&lite317) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EBC)(20, 0.0); -if ( light_on((struct component_tag *)&lite318) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EC4)(20, 0.0); -if ( light_on((struct component_tag *)&lite319) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ECC)(20, 0.0); -v10 = *(_DWORD *)(dword_1023888 + 6); -*(_DWORD *)(dword_1023BBC + 6) = v10; -MissionControl(66, 0); -v11 = SpecialAddScore(*(&off_10246A0 + v10)); -v12 = get_rc_string(77, 0); -_sprintf(&Dest, v12, v11); -TTextBox::Display(dword_1023E24, 0, &Dest, 4.0); -} -} -else -{ -if ( a1 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023BBC)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023CFC)(34, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023BB4)(20, 0.0); -*(_DWORD *)(dword_1023888 + 6) = 0; -*(_DWORD *)(dword_1023B9C + 6) = 0; -v3 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A8C; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A8C)(34, 0.0); -(**v3)(v3, 20, 0.0); -v4 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A94; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A94)(34, 0.0); -(**v4)(v4, 20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EEC)(20, 0.0); -} -else if ( a1 != 67 ) -{ -return; -} -if ( (**(int (__stdcall ***)(signed int, _DWORD))dword_1023978)(37, 0.0) ) -{ -if ( light_on((struct component_tag *)&lite56) ) -{ -v8 = get_rc_string(word_1024708[2 * *(_DWORD *)(dword_1023888 + 6)], 1); -v9 = get_rc_string(106, 0); -_sprintf(&Dest, v9, v8); -TTextBox::Display(dword_1023E24, 0, &Dest, -1.0); -if ( light_on((struct component_tag *)&lite318) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EC4)(20, 0.0); -if ( light_on((struct component_tag *)&lite319) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ECC)(20, 0.0); -if ( !light_on((struct component_tag *)&lite317) ) -{ -v6 = (void (__stdcall ***)(signed int, _DWORD))dword_1023EBC; -goto LABEL_28; -} -} -else -{ -v7 = get_rc_string(104, 0); -TTextBox::Display(dword_1023E24, 0, v7, -1.0); -if ( light_on((struct component_tag *)&lite317) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EBC)(20, 0.0); -if ( light_on((struct component_tag *)&lite318) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EC4)(20, 0.0); -if ( !light_on((struct component_tag *)&lite319) ) -{ -v6 = (void (__stdcall ***)(signed int, _DWORD))dword_1023ECC; -goto LABEL_28; -} -} -} -else -{ -v5 = get_rc_string(105, 0); -TTextBox::Display(dword_1023E24, 0, v5, -1.0); -if ( light_on((struct component_tag *)&lite317) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EBC)(20, 0.0); -if ( light_on((struct component_tag *)&lite319) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ECC)(20, 0.0); -if ( !light_on((struct component_tag *)&lite318) ) -{ -v6 = (void (__stdcall ***)(signed int, _DWORD))dword_1023EC4; -LABEL_28: -(**v6)(7, 0.0); -return; -} -} -} + v2 = 0; + if (a1 == 45 || a1 == 47) + { + if ((struct TPinballComponent*)dword_1023978 == a2) + LABEL_83: + MissionControl(67, a2); + } + else if (a1 == 63) + { + if ((struct TPinballComponent*)dword_1023B84 == a2) + v2 = 1; + if ((struct TPinballComponent*)dword_1023B8C == a2) + v2 = 2; + if ((struct TPinballComponent*)dword_1023B94 == a2) + v2 = 3; + if (v2) + { + if (*(_DWORD*)(dword_1023B9C + 6) == 7) + { + *(_DWORD*)(dword_1023B9C + 6) = 0; + v2 = 4; + } + switch ((**(int(__stdcall * **)(signed int, _DWORD))dword_1023CF4)(37, 0.0)) + { + case 1: + switch (v2) + { + case 1: + v13 = 3; + break; + case 2: + v13 = 4; + break; + case 3: + v13 = 2; + break; + default: + v13 = 5; + break; + } + goto LABEL_71; + case 2: + case 3: + switch (v2) + { + case 1: + v13 = 9; + break; + case 2: + v13 = 11; + break; + case 3: + v13 = 10; + break; + default: + LABEL_69: + v13 = 16; + break; + } + goto LABEL_71; + case 4: + case 5: + switch (v2) + { + case 1: + v13 = 6; + break; + case 2: + v13 = 8; + break; + case 3: + v13 = 7; + break; + default: + LABEL_70: + v13 = 15; + break; + } + goto LABEL_71; + case 6: + case 7: + switch (v2) + { + case 1: + v13 = 12; + break; + case 2: + v13 = 13; + break; + case 3: + v13 = 14; + break; + default: + LABEL_68: + v13 = 17; + break; + } + goto LABEL_71; + case 8: + case 9: + switch (v2) + { + case 1: + goto LABEL_70; + case 2: + goto LABEL_69; + case 3: + goto LABEL_68; + } + v13 = 18; + LABEL_71: + *(_DWORD*)(dword_1023888 + 6) = v13; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023888)(15, 2.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023BBC)(4, 0.0); + goto LABEL_83; + default: + return; + } + } + else if ((struct TPinballComponent*)dword_1023870 == a2 + && light_on((struct component_tag*) & lite56) + && (**(int(__stdcall * **)(signed int, _DWORD))dword_1023978)(37, 0.0)) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023888)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023BBC)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023CFC)(26, -1.0); + if (light_on((struct component_tag*) & lite317)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EBC)(20, 0.0); + if (light_on((struct component_tag*) & lite318)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EC4)(20, 0.0); + if (light_on((struct component_tag*) & lite319)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ECC)(20, 0.0); + v10 = *(_DWORD*)(dword_1023888 + 6); + *(_DWORD*)(dword_1023BBC + 6) = v10; + MissionControl(66, 0); + v11 = SpecialAddScore(*(&off_10246A0 + v10)); + v12 = get_rc_string(77, 0); + _sprintf(&Dest, v12, v11); + TTextBox::Display(dword_1023E24, 0, &Dest, 4.0); + } + } + else + { + if (a1 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023BBC)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023CFC)(34, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023BB4)(20, 0.0); + *(_DWORD*)(dword_1023888 + 6) = 0; + *(_DWORD*)(dword_1023B9C + 6) = 0; + v3 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A8C; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A8C)(34, 0.0); + (**v3)(v3, 20, 0.0); + v4 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A94; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A94)(34, 0.0); + (**v4)(v4, 20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EEC)(20, 0.0); + } + else if (a1 != 67) + { + return; + } + if ((**(int(__stdcall * **)(signed int, _DWORD))dword_1023978)(37, 0.0)) + { + if (light_on((struct component_tag*) & lite56)) + { + v8 = get_rc_string(word_1024708[2 * *(_DWORD*)(dword_1023888 + 6)], 1); + v9 = get_rc_string(106, 0); + _sprintf(&Dest, v9, v8); + TTextBox::Display(dword_1023E24, 0, &Dest, -1.0); + if (light_on((struct component_tag*) & lite318)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EC4)(20, 0.0); + if (light_on((struct component_tag*) & lite319)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ECC)(20, 0.0); + if (!light_on((struct component_tag*) & lite317)) + { + v6 = (void(__stdcall * **)(signed int, _DWORD))dword_1023EBC; + goto LABEL_28; + } + } + else + { + v7 = get_rc_string(104, 0); + TTextBox::Display(dword_1023E24, 0, v7, -1.0); + if (light_on((struct component_tag*) & lite317)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EBC)(20, 0.0); + if (light_on((struct component_tag*) & lite318)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EC4)(20, 0.0); + if (!light_on((struct component_tag*) & lite319)) + { + v6 = (void(__stdcall * **)(signed int, _DWORD))dword_1023ECC; + goto LABEL_28; + } + } + } + else + { + v5 = get_rc_string(105, 0); + TTextBox::Display(dword_1023E24, 0, v5, -1.0); + if (light_on((struct component_tag*) & lite317)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EBC)(20, 0.0); + if (light_on((struct component_tag*) & lite319)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ECC)(20, 0.0); + if (!light_on((struct component_tag*) & lite318)) + { + v6 = (void(__stdcall * **)(signed int, _DWORD))dword_1023EC4; + LABEL_28: + (**v6)(7, 0.0); + return; + } + } + } } // 1023870: using guessed type int dword_1023870; // 1023884: using guessed type char *lite56; @@ -283,71 +283,71 @@ return; // 1024708: using guessed type __int16 word_1024708[]; //----- (0100EBF3) -------------------------------------------------------- -void __userpurge PracticeMissionController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge PracticeMissionController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST10_4 -CHAR *v4; // eax -int v5; // ecx -char *v6; // eax -int v7; // ST10_4 -CHAR *v8; // eax -char Dest; // [esp+14h] [ebp-44h] + int v3; // ST10_4 + CHAR* v4; // eax + int v5; // ecx + char* v6; // eax + int v7; // ST10_4 + CHAR* v8; // eax + char Dest; // [esp+14h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E74)( -dword_1023E74, -a3, -7, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E8C)(7, 0.0); -*(_DWORD *)(dword_1023888 + 6) = 8; -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(107, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10236E4 == a3 -|| (struct TPinballComponent *)dword_10236EC == a3 -|| (struct TPinballComponent *)dword_10236F4 == a3 -|| (struct TPinballComponent *)dword_10236FC == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E74)( -dword_1023E74, -a3, -20, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E8C)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v6 = get_rc_string(108, 0); -TTextBox::Display(dword_1023E24, a1, v6, 4.0); -v7 = SpecialAddScore(500000); -v8 = get_rc_string(78, 0); -_sprintf(&Dest, v8, v7); -if ( !AddRankProgress(6) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E74)( + dword_1023E74, + a3, + 7, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E8C)(7, 0.0); + *(_DWORD*)(dword_1023888 + 6) = 8; + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(107, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10236E4 == a3 + || (struct TPinballComponent*)dword_10236EC == a3 + || (struct TPinballComponent*)dword_10236F4 == a3 + || (struct TPinballComponent*)dword_10236FC == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E74)( + dword_1023E74, + a3, + 20, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E8C)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v6 = get_rc_string(108, 0); + TTextBox::Display(dword_1023E24, a1, v6, 4.0); + v7 = SpecialAddScore(500000); + v8 = get_rc_string(78, 0); + _sprintf(&Dest, v8, v7); + if (!AddRankProgress(6)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 10236E4: using guessed type int dword_10236E4; // 10236EC: using guessed type int dword_10236EC; @@ -360,66 +360,66 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023E8C: using guessed type int dword_1023E8C; //----- (0100ED83) -------------------------------------------------------- -void __userpurge LaunchTrainingController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge LaunchTrainingController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST08_4 -CHAR *v4; // eax -int v5; // ecx -char *v6; // eax -int v7; // ST08_4 -CHAR *v8; // eax -char Dest; // [esp+Ch] [ebp-44h] + int v3; // ST08_4 + CHAR* v4; // eax + int v5; // ecx + char* v6; // eax + int v7; // ST08_4 + CHAR* v8; // eax + char Dest; // [esp+Ch] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023EBC)( -dword_1023EBC, -a3, -7, -0.0); -*(_DWORD *)(dword_1023888 + 6) = 3; -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(110, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023870 == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023EBC)( -dword_1023EBC, -a3, -20, -0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v6 = get_rc_string(111, 0); -TTextBox::Display(dword_1023E24, a1, v6, 4.0); -v7 = SpecialAddScore(500000); -v8 = get_rc_string(78, 0); -_sprintf(&Dest, v8, v7); -if ( !AddRankProgress(6) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023EBC)( + dword_1023EBC, + a3, + 7, + 0.0); + *(_DWORD*)(dword_1023888 + 6) = 3; + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(110, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023870 == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023EBC)( + dword_1023EBC, + a3, + 20, + 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v6 = get_rc_string(111, 0); + TTextBox::Display(dword_1023E24, a1, v6, 4.0); + v7 = SpecialAddScore(500000); + v8 = get_rc_string(78, 0); + _sprintf(&Dest, v8, v7); + if (!AddRankProgress(6)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 1023870: using guessed type int dword_1023870; // 1023888: using guessed type int dword_1023888; @@ -428,78 +428,78 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023EBC: using guessed type int dword_1023EBC; //----- (0100EED7) -------------------------------------------------------- -void __userpurge ReentryTrainingController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge ReentryTrainingController(int a1@ , int a2, struct TPinballComponent* a3) { -void (__thiscall ***v3)(_DWORD, signed int, _DWORD); // esi -void (__thiscall ***v4)(_DWORD, signed int, _DWORD); // esi -int v5; // ST38_4 -CHAR *v6; // eax -int v7; // ecx -char *v8; // eax -int v9; // ST38_4 -CHAR *v10; // eax -char Dest; // [esp+40h] [ebp-44h] + void(__thiscall * **v3)(_DWORD, signed int, _DWORD); // esi + void(__thiscall * **v4)(_DWORD, signed int, _DWORD); // esi + int v5; // ST38_4 + CHAR* v6; // eax + int v7; // ecx + char* v8; // eax + int v9; // ST38_4 + CHAR* v10; // eax + char Dest; // [esp+40h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 3; -v3 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A8C; -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023A8C)( -dword_1023A8C, -a3, -20, -0.0); -(**v3)(v3, 32, 0.2); -(**v3)(v3, 26, 0.2); -v4 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A94; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A94)(20, 0.0); -(**v4)(v4, 32, 0.2); -(**v4)(v4, 26, 0.2); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E6C)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v5 = *(_DWORD *)(dword_1023888 + 6); -v6 = get_rc_string(112, 0); -_sprintf(&Dest, v6, v5); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_102372C == a3 -|| (struct TPinballComponent *)dword_1023734 == a3 -|| (struct TPinballComponent *)dword_102373C == a3 ) -{ -v7 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v7; -if ( v7 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E6C)( -dword_1023E6C, -a3, -20, -0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v8 = get_rc_string(113, 0); -TTextBox::Display(dword_1023E24, a1, v8, 4.0); -v9 = SpecialAddScore(500000); -v10 = get_rc_string(78, 0); -_sprintf(&Dest, v10, v9); -if ( !AddRankProgress(6) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 3; + v3 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A8C; + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023A8C)( + dword_1023A8C, + a3, + 20, + 0.0); + (**v3)(v3, 32, 0.2); + (**v3)(v3, 26, 0.2); + v4 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A94; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A94)(20, 0.0); + (**v4)(v4, 32, 0.2); + (**v4)(v4, 26, 0.2); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E6C)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v5 = *(_DWORD*)(dword_1023888 + 6); + v6 = get_rc_string(112, 0); + _sprintf(&Dest, v6, v5); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_102372C == a3 + || (struct TPinballComponent*)dword_1023734 == a3 + || (struct TPinballComponent*)dword_102373C == a3) + { + v7 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v7; + if (v7) + { + MissionControl(67, a3); + } + else + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E6C)( + dword_1023E6C, + a3, + 20, + 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v8 = get_rc_string(113, 0); + TTextBox::Display(dword_1023E24, a1, v8, 4.0); + v9 = SpecialAddScore(500000); + v10 = get_rc_string(78, 0); + _sprintf(&Dest, v10, v9); + if (!AddRankProgress(6)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 102372C: using guessed type int dword_102372C; // 1023734: using guessed type int dword_1023734; @@ -512,88 +512,88 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023E6C: using guessed type int dword_1023E6C; //----- (0100F0B3) -------------------------------------------------------- -void __userpurge ScienceMissionController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge ScienceMissionController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST60_4 -CHAR *v4; // eax -int v5; // edx -char *v6; // eax -int v7; // ST60_4 -CHAR *v8; // eax -char Dest; // [esp+68h] [ebp-44h] + int v3; // ST60_4 + CHAR* v4; // eax + int v5; // edx + char* v6; // eax + int v7; // ST60_4 + CHAR* v8; // eax + char Dest; // [esp+68h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 9; -*(_DWORD *)(dword_1023A9C + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A9C)(50, 0.0); -*(_DWORD *)(dword_1023AA4 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023AA4)(50, 0.0); -*(_DWORD *)(dword_1023AAC + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023AAC)(50, 0.0); -*(_DWORD *)(dword_1023ADC + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ADC)(50, 0.0); -*(_DWORD *)(dword_1023AE4 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023AE4)(50, 0.0); -*(_DWORD *)(dword_1023AEC + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023AEC)(50, 0.0); -*(_DWORD *)(dword_1023B20 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023B20)(50, 0.0); -*(_DWORD *)(dword_1023B28 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023B28)(50, 0.0); -*(_DWORD *)(dword_1023B30 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023B30)(50, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E4C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E7C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EAC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(114, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023A9C == a3 -|| (struct TPinballComponent *)dword_1023AA4 == a3 -|| (struct TPinballComponent *)dword_1023AAC == a3 -|| (struct TPinballComponent *)dword_1023ADC == a3 -|| (struct TPinballComponent *)dword_1023AE4 == a3 -|| (struct TPinballComponent *)dword_1023AEC == a3 -|| (struct TPinballComponent *)dword_1023B20 == a3 -|| (struct TPinballComponent *)dword_1023B28 == a3 -|| (struct TPinballComponent *)dword_1023B30 == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E4C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E7C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EAC)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v6 = get_rc_string(115, 0); -TTextBox::Display(dword_1023E24, a1, v6, 4.0); -v7 = SpecialAddScore(750000); -v8 = get_rc_string(78, 0); -_sprintf(&Dest, v8, v7); -if ( !AddRankProgress(9) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 9; + *(_DWORD*)(dword_1023A9C + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A9C)(50, 0.0); + *(_DWORD*)(dword_1023AA4 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023AA4)(50, 0.0); + *(_DWORD*)(dword_1023AAC + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023AAC)(50, 0.0); + *(_DWORD*)(dword_1023ADC + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ADC)(50, 0.0); + *(_DWORD*)(dword_1023AE4 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023AE4)(50, 0.0); + *(_DWORD*)(dword_1023AEC + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023AEC)(50, 0.0); + *(_DWORD*)(dword_1023B20 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023B20)(50, 0.0); + *(_DWORD*)(dword_1023B28 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023B28)(50, 0.0); + *(_DWORD*)(dword_1023B30 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023B30)(50, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E4C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E7C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EAC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(114, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023A9C == a3 + || (struct TPinballComponent*)dword_1023AA4 == a3 + || (struct TPinballComponent*)dword_1023AAC == a3 + || (struct TPinballComponent*)dword_1023ADC == a3 + || (struct TPinballComponent*)dword_1023AE4 == a3 + || (struct TPinballComponent*)dword_1023AEC == a3 + || (struct TPinballComponent*)dword_1023B20 == a3 + || (struct TPinballComponent*)dword_1023B28 == a3 + || (struct TPinballComponent*)dword_1023B30 == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E4C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E7C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EAC)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v6 = get_rc_string(115, 0); + TTextBox::Display(dword_1023E24, a1, v6, 4.0); + v7 = SpecialAddScore(750000); + v8 = get_rc_string(78, 0); + _sprintf(&Dest, v8, v7); + if (!AddRankProgress(9)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 1023888: using guessed type int dword_1023888; // 1023A9C: using guessed type int dword_1023A9C; @@ -612,63 +612,63 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023EAC: using guessed type int dword_1023EAC; //----- (0100F381) -------------------------------------------------------- -void __userpurge StrayCometController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge StrayCometController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax -char *v4; // eax -int v5; // ST10_4 -CHAR *v6; // eax -char Dest; // [esp+18h] [ebp-44h] + char* v3; // eax + char* v4; // eax + int v5; // ST10_4 + CHAR* v6; // eax + char Dest; // [esp+18h] [ebp-44h] -if ( a2 == 63 ) -{ -if ( (struct TPinballComponent *)dword_1023BE0 == a3 -|| (struct TPinballComponent *)dword_1023BE8 == a3 -|| (struct TPinballComponent *)dword_1023BF0 == a3 ) -{ -if ( *(_DWORD *)(dword_1023C10 + 6) == 7 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E64)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E54)(7, 0.0); -*(_DWORD *)(dword_1023C10 + 6) = 15; -MissionControl(67, a3); -} -} -else if ( (struct TPinballComponent *)dword_1023980 == a3 && *(_DWORD *)(dword_1023C10 + 6) == 15 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E54)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v4 = get_rc_string(119, 0); -TTextBox::Display(dword_1023E24, a1, v4, 4.0); -v5 = SpecialAddScore(1000000); -v6 = get_rc_string(78, 0); -_sprintf(&Dest, v6, v5); -if ( !AddRankProgress(8) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} -else -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023C30)(20, 0.0); -*(_DWORD *)(dword_1023C10 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E64)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -if ( *(_DWORD *)(dword_1023C10 + 6) == 15 ) -v3 = get_rc_string(118, 0); -else -v3 = get_rc_string(117, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -} + if (a2 == 63) + { + if ((struct TPinballComponent*)dword_1023BE0 == a3 + || (struct TPinballComponent*)dword_1023BE8 == a3 + || (struct TPinballComponent*)dword_1023BF0 == a3) + { + if (*(_DWORD*)(dword_1023C10 + 6) == 7) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E64)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E54)(7, 0.0); + *(_DWORD*)(dword_1023C10 + 6) = 15; + MissionControl(67, a3); + } + } + else if ((struct TPinballComponent*)dword_1023980 == a3 && *(_DWORD*)(dword_1023C10 + 6) == 15) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E54)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v4 = get_rc_string(119, 0); + TTextBox::Display(dword_1023E24, a1, v4, 4.0); + v5 = SpecialAddScore(1000000); + v6 = get_rc_string(78, 0); + _sprintf(&Dest, v6, v5); + if (!AddRankProgress(8)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } + else + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023C30)(20, 0.0); + *(_DWORD*)(dword_1023C10 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E64)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + if (*(_DWORD*)(dword_1023C10 + 6) == 15) + v3 = get_rc_string(118, 0); + else + v3 = get_rc_string(117, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + } } // 1023980: using guessed type int dword_1023980; // 1023BBC: using guessed type int dword_1023BBC; @@ -682,66 +682,66 @@ TTextBox::Display(dword_1023E24, a1, v3, -1.0); // 1023E64: using guessed type int dword_1023E64; //----- (0100F539) -------------------------------------------------------- -void __userpurge SpaceRadiationController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge SpaceRadiationController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax -char *v4; // eax -int v5; // ST10_4 -CHAR *v6; // eax -char Dest; // [esp+18h] [ebp-44h] + char* v3; // eax + char* v4; // eax + int v5; // ST10_4 + CHAR* v6; // eax + char Dest; // [esp+18h] [ebp-44h] -if ( a2 == 63 ) -{ -if ( (struct TPinballComponent *)dword_1023BC8 == a3 -|| (struct TPinballComponent *)dword_1023BD0 == a3 -|| (struct TPinballComponent *)dword_1023BD8 == a3 ) -{ -if ( *(_DWORD *)(dword_1023BF8 + 6) == 7 ) -{ -*(_DWORD *)(dword_1023BF8 + 6) = 15; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A3C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E9C)(20, 0.0); -MissionControl(67, a3); -AdvanceWormHoleDestination(1); -} -} -else if ( ((struct TPinballComponent *)dword_10239EC == a3 -|| (struct TPinballComponent *)dword_10239F4 == a3 -|| (struct TPinballComponent *)dword_10239FC == a3) -&& *(_DWORD *)(dword_1023BF8 + 6) == 15 ) -{ -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v4 = get_rc_string(121, 0); -TTextBox::Display(dword_1023E24, a1, v4, 4.0); -v5 = SpecialAddScore(1000000); -v6 = get_rc_string(78, 0); -_sprintf(&Dest, v6, v5); -if ( !AddRankProgress(8) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} -else -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023C28)(20, 0.0); -*(_DWORD *)(dword_1023BF8 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E9C)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -if ( *(_DWORD *)(dword_1023BF8 + 6) == 15 ) -v3 = get_rc_string(120, 0); -else -v3 = get_rc_string(176, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -} + if (a2 == 63) + { + if ((struct TPinballComponent*)dword_1023BC8 == a3 + || (struct TPinballComponent*)dword_1023BD0 == a3 + || (struct TPinballComponent*)dword_1023BD8 == a3) + { + if (*(_DWORD*)(dword_1023BF8 + 6) == 7) + { + *(_DWORD*)(dword_1023BF8 + 6) = 15; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A3C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E9C)(20, 0.0); + MissionControl(67, a3); + AdvanceWormHoleDestination(1); + } + } + else if (((struct TPinballComponent*)dword_10239EC == a3 + || (struct TPinballComponent*)dword_10239F4 == a3 + || (struct TPinballComponent*)dword_10239FC == a3) + && *(_DWORD*)(dword_1023BF8 + 6) == 15) + { + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v4 = get_rc_string(121, 0); + TTextBox::Display(dword_1023E24, a1, v4, 4.0); + v5 = SpecialAddScore(1000000); + v6 = get_rc_string(78, 0); + _sprintf(&Dest, v6, v5); + if (!AddRankProgress(8)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } + else + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023C28)(20, 0.0); + *(_DWORD*)(dword_1023BF8 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E9C)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + if (*(_DWORD*)(dword_1023BF8 + 6) == 15) + v3 = get_rc_string(120, 0); + else + v3 = get_rc_string(176, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + } } // 10239EC: using guessed type int dword_10239EC; // 10239F4: using guessed type int dword_10239F4; @@ -757,82 +757,82 @@ TTextBox::Display(dword_1023E24, a1, v3, -1.0); // 1023E9C: using guessed type int dword_1023E9C; //----- (0100F6F4) -------------------------------------------------------- -void __userpurge BlackHoleThreatController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge BlackHoleThreatController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax -void (__stdcall ***v4)(signed int, _DWORD); // ecx -char *v5; // eax -char *v6; // eax -int v7; // ST10_4 -CHAR *v8; // eax -float v9; // [esp+10h] [ebp-4Ch] -char Dest; // [esp+18h] [ebp-44h] + char* v3; // eax + void(__stdcall * **v4)(signed int, _DWORD); // ecx + char* v5; // eax + char* v6; // eax + int v7; // ST10_4 + CHAR* v8; // eax + float v9; // [esp+10h] [ebp-4Ch] + char Dest; // [esp+18h] [ebp-44h] -if ( a2 == 11 ) -{ -if ( (struct TPinballComponent *)dword_1023758 == a3 ) -MissionControl(67, a3); -} -else if ( a2 == 63 ) -{ -if ( (struct TPinballComponent *)dword_1023C5C == a3 && *(_DWORD *)(dword_1023758 + 78) ) -{ -if ( light_on((struct component_tag *)&lite316) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EB4)(20, 0.0); -if ( light_on((struct component_tag *)&lite314) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EA4)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v6 = get_rc_string(124, 0); -TTextBox::Display(dword_1023E24, a1, v6, 4.0); -v7 = SpecialAddScore(1000000); -v8 = get_rc_string(78, 0); -_sprintf(&Dest, v8, v7); -if ( !AddRankProgress(8) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} -else -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023770)(11, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v9 = -1.0; -if ( *(_DWORD *)(dword_1023758 + 78) ) -{ -v5 = get_rc_string(123, 0); -TTextBox::Display(dword_1023E24, a1, v5, v9); -if ( light_on((struct component_tag *)&lite316) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EB4)(20, 0.0); -if ( !light_on((struct component_tag *)&lite314) ) -{ -v4 = (void (__stdcall ***)(signed int, _DWORD))dword_1023EA4; -goto LABEL_12; -} -} -else -{ -v3 = get_rc_string(122, 0); -TTextBox::Display(dword_1023E24, a1, v3, v9); -if ( light_on((struct component_tag *)&lite314) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EA4)(20, 0.0); -if ( !light_on((struct component_tag *)&lite316) ) -{ -v4 = (void (__stdcall ***)(signed int, _DWORD))dword_1023EB4; -LABEL_12: -(**v4)(7, 0.0); -return; -} -} -} + if (a2 == 11) + { + if ((struct TPinballComponent*)dword_1023758 == a3) + MissionControl(67, a3); + } + else if (a2 == 63) + { + if ((struct TPinballComponent*)dword_1023C5C == a3 && *(_DWORD*)(dword_1023758 + 78)) + { + if (light_on((struct component_tag*) & lite316)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EB4)(20, 0.0); + if (light_on((struct component_tag*) & lite314)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EA4)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v6 = get_rc_string(124, 0); + TTextBox::Display(dword_1023E24, a1, v6, 4.0); + v7 = SpecialAddScore(1000000); + v8 = get_rc_string(78, 0); + _sprintf(&Dest, v8, v7); + if (!AddRankProgress(8)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } + else + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023770)(11, 0.0); + } + else if (a2 != 67) + { + return; + } + v9 = -1.0; + if (*(_DWORD*)(dword_1023758 + 78)) + { + v5 = get_rc_string(123, 0); + TTextBox::Display(dword_1023E24, a1, v5, v9); + if (light_on((struct component_tag*) & lite316)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EB4)(20, 0.0); + if (!light_on((struct component_tag*) & lite314)) + { + v4 = (void(__stdcall * **)(signed int, _DWORD))dword_1023EA4; + goto LABEL_12; + } + } + else + { + v3 = get_rc_string(122, 0); + TTextBox::Display(dword_1023E24, a1, v3, v9); + if (light_on((struct component_tag*) & lite314)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EA4)(20, 0.0); + if (!light_on((struct component_tag*) & lite316)) + { + v4 = (void(__stdcall * **)(signed int, _DWORD))dword_1023EB4; + LABEL_12: + (**v4)(7, 0.0); + return; + } + } + } } // 1023758: using guessed type int dword_1023758; // 1023770: using guessed type int dword_1023770; @@ -845,109 +845,109 @@ return; // 1023EB4: using guessed type int dword_1023EB4; //----- (0100F900) -------------------------------------------------------- -void __userpurge BugHuntController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge BugHuntController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST90_4 -CHAR *v4; // eax -int v5; // edx -char *v6; // eax -int v7; // ST90_4 -CHAR *v8; // eax -char Dest; // [esp+9Ch] [ebp-44h] + int v3; // ST90_4 + CHAR* v4; // eax + int v5; // edx + char* v6; // eax + int v7; // ST90_4 + CHAR* v8; // eax + char Dest; // [esp+9Ch] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 15; -*(_DWORD *)(dword_1023A9C + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A9C)(50, 0.0); -*(_DWORD *)(dword_1023AA4 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023AA4)(50, 0.0); -*(_DWORD *)(dword_1023AAC + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023AAC)(50, 0.0); -*(_DWORD *)(dword_1023ADC + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ADC)(50, 0.0); -*(_DWORD *)(dword_1023AE4 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023AE4)(50, 0.0); -*(_DWORD *)(dword_1023AEC + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023AEC)(50, 0.0); -*(_DWORD *)(dword_1023B20 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023B20)(50, 0.0); -*(_DWORD *)(dword_1023B28 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023B28)(50, 0.0); -*(_DWORD *)(dword_1023B30 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023B30)(50, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023B78)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023BB4)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023C28)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023C30)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E64)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E74)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E84)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E9C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ECC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(125, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023A9C == a3 -|| (struct TPinballComponent *)dword_1023AA4 == a3 -|| (struct TPinballComponent *)dword_1023AAC == a3 -|| (struct TPinballComponent *)dword_1023ADC == a3 -|| (struct TPinballComponent *)dword_1023AE4 == a3 -|| (struct TPinballComponent *)dword_1023AEC == a3 -|| (struct TPinballComponent *)dword_1023B20 == a3 -|| (struct TPinballComponent *)dword_1023B28 == a3 -|| (struct TPinballComponent *)dword_1023B30 == a3 -|| (struct TPinballComponent *)dword_1023B48 == a3 -|| (struct TPinballComponent *)dword_1023B50 == a3 -|| (struct TPinballComponent *)dword_1023B58 == a3 -|| (struct TPinballComponent *)dword_1023B84 == a3 -|| (struct TPinballComponent *)dword_1023B8C == a3 -|| (struct TPinballComponent *)dword_1023B94 == a3 -|| (struct TPinballComponent *)dword_1023BC8 == a3 -|| (struct TPinballComponent *)dword_1023BD0 == a3 -|| (struct TPinballComponent *)dword_1023BD8 == a3 -|| (struct TPinballComponent *)dword_1023BE0 == a3 -|| (struct TPinballComponent *)dword_1023BE8 == a3 -|| (struct TPinballComponent *)dword_1023BF0 == a3 -|| (struct TPinballComponent *)dword_1023C3C == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E64)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E74)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E84)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E9C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ECC)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v6 = get_rc_string(126, 0); -TTextBox::Display(dword_1023E24, a1, v6, 4.0); -v7 = SpecialAddScore(750000); -v8 = get_rc_string(78, 0); -_sprintf(&Dest, v8, v7); -if ( !AddRankProgress(7) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 15; + *(_DWORD*)(dword_1023A9C + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A9C)(50, 0.0); + *(_DWORD*)(dword_1023AA4 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023AA4)(50, 0.0); + *(_DWORD*)(dword_1023AAC + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023AAC)(50, 0.0); + *(_DWORD*)(dword_1023ADC + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ADC)(50, 0.0); + *(_DWORD*)(dword_1023AE4 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023AE4)(50, 0.0); + *(_DWORD*)(dword_1023AEC + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023AEC)(50, 0.0); + *(_DWORD*)(dword_1023B20 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023B20)(50, 0.0); + *(_DWORD*)(dword_1023B28 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023B28)(50, 0.0); + *(_DWORD*)(dword_1023B30 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023B30)(50, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023B78)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023BB4)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023C28)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023C30)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E64)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E74)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E84)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E9C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ECC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(125, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023A9C == a3 + || (struct TPinballComponent*)dword_1023AA4 == a3 + || (struct TPinballComponent*)dword_1023AAC == a3 + || (struct TPinballComponent*)dword_1023ADC == a3 + || (struct TPinballComponent*)dword_1023AE4 == a3 + || (struct TPinballComponent*)dword_1023AEC == a3 + || (struct TPinballComponent*)dword_1023B20 == a3 + || (struct TPinballComponent*)dword_1023B28 == a3 + || (struct TPinballComponent*)dword_1023B30 == a3 + || (struct TPinballComponent*)dword_1023B48 == a3 + || (struct TPinballComponent*)dword_1023B50 == a3 + || (struct TPinballComponent*)dword_1023B58 == a3 + || (struct TPinballComponent*)dword_1023B84 == a3 + || (struct TPinballComponent*)dword_1023B8C == a3 + || (struct TPinballComponent*)dword_1023B94 == a3 + || (struct TPinballComponent*)dword_1023BC8 == a3 + || (struct TPinballComponent*)dword_1023BD0 == a3 + || (struct TPinballComponent*)dword_1023BD8 == a3 + || (struct TPinballComponent*)dword_1023BE0 == a3 + || (struct TPinballComponent*)dword_1023BE8 == a3 + || (struct TPinballComponent*)dword_1023BF0 == a3 + || (struct TPinballComponent*)dword_1023C3C == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E64)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E74)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E84)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E9C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ECC)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v6 = get_rc_string(126, 0); + TTextBox::Display(dword_1023E24, a1, v6, 4.0); + v7 = SpecialAddScore(750000); + v8 = get_rc_string(78, 0); + _sprintf(&Dest, v8, v7); + if (!AddRankProgress(7)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 1023888: using guessed type int dword_1023888; // 1023A9C: using guessed type int dword_1023A9C; @@ -985,95 +985,95 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023ECC: using guessed type int dword_1023ECC; //----- (0100FCD9) -------------------------------------------------------- -void __userpurge RescueMissionController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge RescueMissionController(int a1, int a2, struct TPinballComponent* a3) { -BOOL v3; // eax -char *v4; // eax -void (__stdcall ***v5)(signed int, _DWORD); // ecx -char *v6; // eax -int v7; // ecx -char *v8; // eax -int v9; // ST18_4 -CHAR *v10; // eax -float v11; // [esp+18h] [ebp-4Ch] -char Dest; // [esp+20h] [ebp-44h] + BOOL v3; // eax + char* v4; // eax + void(__stdcall * **v5)(signed int, _DWORD); // ecx + char* v6; // eax + int v7; // ecx + char* v8; // eax + int v9; // ST18_4 + CHAR* v10; // eax + float v11; // [esp+18h] [ebp-4Ch] + char Dest; // [esp+20h] [ebp-44h] -if ( a2 == 63 ) -{ -if ( (struct TPinballComponent *)dword_1023A9C == a3 -|| (struct TPinballComponent *)dword_1023AA4 == a3 -|| (struct TPinballComponent *)dword_1023AAC == a3 ) -{ -goto LABEL_31; -} -if ( (struct TPinballComponent *)dword_1023980 != a3 || !light_on((struct component_tag *)&lite20) ) -return; -v7 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v7; -if ( v7 ) -{ -LABEL_31: -MissionControl(67, a3); -return; -} -if ( light_on((struct component_tag *)&lite303) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E4C)(20, 0.0); -if ( light_on((struct component_tag *)&lite304) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E54)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v8 = get_rc_string(129, 0); -TTextBox::Display(dword_1023E24, a1, v8, 4.0); -v9 = SpecialAddScore(750000); -v10 = get_rc_string(78, 0); -_sprintf(&Dest, v10, v9); -if ( !AddRankProgress(7) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -else -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023940)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239D0)(20, 0.0); -*(_DWORD *)(dword_1023888 + 6) = 1; -} -else if ( a2 != 67 ) -{ -return; -} -v3 = light_on((struct component_tag *)&lite20); -v11 = -1.0; -if ( v3 ) -{ -v6 = get_rc_string(128, 0); -TTextBox::Display(dword_1023E24, a1, v6, v11); -if ( light_on((struct component_tag *)&lite303) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E4C)(20, 0.0); -if ( !light_on((struct component_tag *)&lite304) ) -{ -v5 = (void (__stdcall ***)(signed int, _DWORD))dword_1023E54; -goto LABEL_11; -} -} -else -{ -v4 = get_rc_string(127, 0); -TTextBox::Display(dword_1023E24, a1, v4, v11); -if ( light_on((struct component_tag *)&lite304) ) -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E54)(20, 0.0); -if ( !light_on((struct component_tag *)&lite303) ) -{ -v5 = (void (__stdcall ***)(signed int, _DWORD))dword_1023E4C; -LABEL_11: -(**v5)(7, 0.0); -return; -} -} -} + if (a2 == 63) + { + if ((struct TPinballComponent*)dword_1023A9C == a3 + || (struct TPinballComponent*)dword_1023AA4 == a3 + || (struct TPinballComponent*)dword_1023AAC == a3) + { + MissionControl(67, a3); + return; + } + if ((struct TPinballComponent*)dword_1023980 != a3 || !light_on((struct component_tag*) & lite20)) + return; + v7 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v7; + if (v7) + { + MissionControl(67, a3); + return; + } + if (light_on((struct component_tag*) & lite303)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E4C)(20, 0.0); + if (light_on((struct component_tag*) & lite304)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E54)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v8 = get_rc_string(129, 0); + TTextBox::Display(dword_1023E24, a1, v8, 4.0); + v9 = SpecialAddScore(750000); + v10 = get_rc_string(78, 0); + _sprintf(&Dest, v10, v9); + if (!AddRankProgress(7)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + else + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023940)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239D0)(20, 0.0); + *(_DWORD*)(dword_1023888 + 6) = 1; + } + else if (a2 != 67) + { + return; + } + v3 = light_on((struct component_tag*) & lite20); + v11 = -1.0; + if (v3) + { + v6 = get_rc_string(128, 0); + TTextBox::Display(dword_1023E24, a1, v6, v11); + if (light_on((struct component_tag*) & lite303)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E4C)(20, 0.0); + if (!light_on((struct component_tag*) & lite304)) + { + v5 = (void(__stdcall * **)(signed int, _DWORD))dword_1023E54; + goto LABEL_11; + } + } + else + { + v4 = get_rc_string(127, 0); + TTextBox::Display(dword_1023E24, a1, v4, v11); + if (light_on((struct component_tag*) & lite304)) + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E54)(20, 0.0); + if (!light_on((struct component_tag*) & lite303)) + { + v5 = (void(__stdcall * **)(signed int, _DWORD))dword_1023E4C; + LABEL_11: + (**v5)(7, 0.0); + return; + } + } + } } // 1023888: using guessed type int dword_1023888; // 102393C: using guessed type char *lite20; @@ -1091,44 +1091,44 @@ return; // 1023E54: using guessed type int dword_1023E54; //----- (0100FF35) -------------------------------------------------------- -void __userpurge AlienMenaceController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge AlienMenaceController(int a1@ , int a2, struct TPinballComponent* a3) { -void (__thiscall ***v3)(_DWORD, signed int, _DWORD); // esi -void (__thiscall ***v4)(_DWORD, signed int, _DWORD); // esi -char *v5; // eax + void(__thiscall * **v3)(_DWORD, signed int, _DWORD); // esi + void(__thiscall * **v4)(_DWORD, signed int, _DWORD); // esi + char* v5; // eax -if ( a2 != 11 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023704)(11, 0.0); -v3 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A8C; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A8C)(20, 0.0); -(**v3)(v3, 32, 0.2); -(**v3)(v3, 26, 0.2); -v4 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A94; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A94)(20, 0.0); -(**v4)(v4, 32, 0.2); -(**v4)(v4, 26, 0.2); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E6C)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v5 = get_rc_string(175, 0); -TTextBox::Display(dword_1023E24, a1, v5, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10236E4 == a3 ) -{ -if ( *(_DWORD *)(dword_10236E4 + 78) ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E6C)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 20; -MissionControl(66, 0); -} -} + if (a2 != 11) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023704)(11, 0.0); + v3 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A8C; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A8C)(20, 0.0); + (**v3)(v3, 32, 0.2); + (**v3)(v3, 26, 0.2); + v4 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A94; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A94)(20, 0.0); + (**v4)(v4, 32, 0.2); + (**v4)(v4, 26, 0.2); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E6C)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v5 = get_rc_string(175, 0); + TTextBox::Display(dword_1023E24, a1, v5, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10236E4 == a3) + { + if (*(_DWORD*)(dword_10236E4 + 78)) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E6C)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 20; + MissionControl(66, 0); + } + } } // 10236E4: using guessed type int dword_10236E4; // 1023704: using guessed type int dword_1023704; @@ -1138,79 +1138,79 @@ MissionControl(66, 0); // 1023E6C: using guessed type int dword_1023E6C; //----- (01010051) -------------------------------------------------------- -void __userpurge AlienMenacePartTwoController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge AlienMenacePartTwoController(int a1@ , int a2, struct TPinballComponent* a3) { -void (__thiscall ***v3)(_DWORD, signed int, _DWORD); // esi -void (__thiscall ***v4)(_DWORD, signed int, _DWORD); // esi -int v5; // ST30_4 -CHAR *v6; // eax -int v7; // ecx -char *v8; // eax -int v9; // ST30_4 -CHAR *v10; // eax -char Dest; // [esp+38h] [ebp-44h] + void(__thiscall * **v3)(_DWORD, signed int, _DWORD); // esi + void(__thiscall * **v4)(_DWORD, signed int, _DWORD); // esi + int v5; // ST30_4 + CHAR* v6; // eax + int v7; // ecx + char* v8; // eax + int v9; // ST30_4 + CHAR* v10; // eax + char Dest; // [esp+38h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 8; -v3 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A8C; -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023A8C)( -dword_1023A8C, -a3, -34, -0.0); -(**v3)(v3, 20, 0.0); -v4 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A94; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A94)(34, 0.0); -(**v4)(v4, 20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E74)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E8C)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v5 = *(_DWORD *)(dword_1023888 + 6); -v6 = get_rc_string(107, 0); -_sprintf(&Dest, v6, v5); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10236E4 == a3 -|| (struct TPinballComponent *)dword_10236EC == a3 -|| (struct TPinballComponent *)dword_10236F4 == a3 -|| (struct TPinballComponent *)dword_10236FC == a3 ) -{ -v7 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v7; -if ( v7 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E74)( -dword_1023E74, -a3, -20, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E8C)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v8 = get_rc_string(130, 0); -TTextBox::Display(dword_1023E24, a1, v8, 4.0); -v9 = SpecialAddScore(750000); -v10 = get_rc_string(78, 0); -_sprintf(&Dest, v10, v9); -if ( !AddRankProgress(7) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 8; + v3 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A8C; + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023A8C)( + dword_1023A8C, + a3, + 34, + 0.0); + (**v3)(v3, 20, 0.0); + v4 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A94; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A94)(34, 0.0); + (**v4)(v4, 20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E74)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E8C)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v5 = *(_DWORD*)(dword_1023888 + 6); + v6 = get_rc_string(107, 0); + _sprintf(&Dest, v6, v5); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10236E4 == a3 + || (struct TPinballComponent*)dword_10236EC == a3 + || (struct TPinballComponent*)dword_10236F4 == a3 + || (struct TPinballComponent*)dword_10236FC == a3) + { + v7 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v7; + if (v7) + { + MissionControl(67, a3); + } + else + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E74)( + dword_1023E74, + a3, + 20, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E8C)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v8 = get_rc_string(130, 0); + TTextBox::Display(dword_1023E24, a1, v8, 4.0); + v9 = SpecialAddScore(750000); + v10 = get_rc_string(78, 0); + _sprintf(&Dest, v10, v9); + if (!AddRankProgress(7)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 10236E4: using guessed type int dword_10236E4; // 10236EC: using guessed type int dword_10236EC; @@ -1225,66 +1225,66 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023E8C: using guessed type int dword_1023E8C; //----- (0101022D) -------------------------------------------------------- -void __userpurge SatelliteController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge SatelliteController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST08_4 -CHAR *v4; // eax -int v5; // ecx -char *v6; // eax -int v7; // ST08_4 -CHAR *v8; // eax -char Dest; // [esp+Ch] [ebp-44h] + int v3; // ST08_4 + CHAR* v4; // eax + int v5; // ecx + char* v6; // eax + int v7; // ST08_4 + CHAR* v8; // eax + char Dest; // [esp+Ch] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 3; -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E74)( -dword_1023E74, -a3, -7, -0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(132, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10236FC == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E74)( -dword_1023E74, -a3, -20, -0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v6 = get_rc_string(133, 0); -TTextBox::Display(dword_1023E24, a1, v6, 4.0); -v7 = SpecialAddScore(1250000); -v8 = get_rc_string(78, 0); -_sprintf(&Dest, v8, v7); -if ( !AddRankProgress(9) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 3; + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E74)( + dword_1023E74, + a3, + 7, + 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(132, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10236FC == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E74)( + dword_1023E74, + a3, + 20, + 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v6 = get_rc_string(133, 0); + TTextBox::Display(dword_1023E24, a1, v6, 4.0); + v7 = SpecialAddScore(1250000); + v8 = get_rc_string(78, 0); + _sprintf(&Dest, v8, v7); + if (!AddRankProgress(9)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 10236FC: using guessed type int dword_10236FC; // 1023888: using guessed type int dword_1023888; @@ -1293,78 +1293,78 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023E74: using guessed type int dword_1023E74; //----- (01010385) -------------------------------------------------------- -void __userpurge ReconnaissanceController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge ReconnaissanceController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST30_4 -CHAR *v4; // eax -int v5; // ecx -char *v6; // eax -int v7; // ST30_4 -CHAR *v8; // eax -char Dest; // [esp+38h] [ebp-44h] + int v3; // ST30_4 + CHAR* v4; // eax + int v5; // ecx + char* v6; // eax + int v7; // ST30_4 + CHAR* v8; // eax + char Dest; // [esp+38h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 15; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E3C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E44)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E6C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EB4)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ED4)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EDC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(134, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_102372C == a3 -|| (struct TPinballComponent *)dword_1023734 == a3 -|| (struct TPinballComponent *)dword_102373C == a3 -|| (struct TPinballComponent *)dword_1023798 == a3 -|| (struct TPinballComponent *)dword_10237A0 == a3 -|| (struct TPinballComponent *)dword_10237A8 == a3 -|| (struct TPinballComponent *)dword_102389C == a3 -|| (struct TPinballComponent *)dword_10238A4 == a3 -|| (struct TPinballComponent *)dword_10238C0 == a3 -|| (struct TPinballComponent *)dword_10238C8 == a3 -|| (struct TPinballComponent *)dword_10238E8 == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, 0); -} -else -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E3C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E44)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E6C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EB4)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ED4)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EDC)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v6 = get_rc_string(136, 0); -TTextBox::Display(dword_1023E24, a1, v6, 4.0); -v7 = SpecialAddScore(1250000); -v8 = get_rc_string(78, 0); -_sprintf(&Dest, v8, v7); -if ( !AddRankProgress(9) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 15; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E3C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E44)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E6C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EB4)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ED4)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EDC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(134, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_102372C == a3 + || (struct TPinballComponent*)dword_1023734 == a3 + || (struct TPinballComponent*)dword_102373C == a3 + || (struct TPinballComponent*)dword_1023798 == a3 + || (struct TPinballComponent*)dword_10237A0 == a3 + || (struct TPinballComponent*)dword_10237A8 == a3 + || (struct TPinballComponent*)dword_102389C == a3 + || (struct TPinballComponent*)dword_10238A4 == a3 + || (struct TPinballComponent*)dword_10238C0 == a3 + || (struct TPinballComponent*)dword_10238C8 == a3 + || (struct TPinballComponent*)dword_10238E8 == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, 0); + } + else + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E3C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E44)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E6C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EB4)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ED4)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EDC)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v6 = get_rc_string(136, 0); + TTextBox::Display(dword_1023E24, a1, v6, 4.0); + v7 = SpecialAddScore(1250000); + v8 = get_rc_string(78, 0); + _sprintf(&Dest, v8, v7); + if (!AddRankProgress(9)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 102372C: using guessed type int dword_102372C; // 1023734: using guessed type int dword_1023734; @@ -1388,68 +1388,68 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023EDC: using guessed type int dword_1023EDC; //----- (010105E3) -------------------------------------------------------- -void __userpurge DoomsdayMachineController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge DoomsdayMachineController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST10_4 -CHAR *v4; // eax -int v5; // ecx -char *v6; // eax -int v7; // ST10_4 -CHAR *v8; // eax -char Dest; // [esp+14h] [ebp-44h] + int v3; // ST10_4 + CHAR* v4; // eax + int v5; // ecx + char* v6; // eax + int v7; // ST10_4 + CHAR* v8; // eax + char Dest; // [esp+14h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 3; -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E3C)( -dword_1023E3C, -a3, -7, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ED4)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(137, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_102389C == a3 || (struct TPinballComponent *)dword_10238A4 == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E3C)( -dword_1023E3C, -a3, -20, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ED4)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v6 = get_rc_string(138, 0); -TTextBox::Display(dword_1023E24, a1, v6, 4.0); -v7 = SpecialAddScore(1250000); -v8 = get_rc_string(78, 0); -_sprintf(&Dest, v8, v7); -if ( !AddRankProgress(9) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 3; + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E3C)( + dword_1023E3C, + a3, + 7, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ED4)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(137, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_102389C == a3 || (struct TPinballComponent*)dword_10238A4 == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E3C)( + dword_1023E3C, + a3, + 20, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ED4)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v6 = get_rc_string(138, 0); + TTextBox::Display(dword_1023E24, a1, v6, 4.0); + v7 = SpecialAddScore(1250000); + v8 = get_rc_string(78, 0); + _sprintf(&Dest, v8, v7); + if (!AddRankProgress(9)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } + } } // 1023888: using guessed type int dword_1023888; // 102389C: using guessed type int dword_102389C; @@ -1460,59 +1460,59 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023ED4: using guessed type int dword_1023ED4; //----- (01010767) -------------------------------------------------------- -void __userpurge CosmicPlagueController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge CosmicPlagueController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST20_4 -CHAR *v4; // eax -int v5; // ecx -char Dest; // [esp+24h] [ebp-44h] + int v3; // ST20_4 + CHAR* v4; // eax + int v5; // ecx + char Dest; // [esp+24h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 75; -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023940)( -dword_1023940, -a3, -19, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239D0)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E5C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E94)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(139, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023930 == a3 || (struct TPinballComponent *)dword_10239C8 == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E5C)( -dword_1023E5C, -a3, -20, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E94)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 21; -MissionControl(66, 0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023940)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239D0)(20, 0.0); -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 75; + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023940)( + dword_1023940, + a3, + 19, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239D0)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E5C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E94)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(139, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023930 == a3 || (struct TPinballComponent*)dword_10239C8 == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E5C)( + dword_1023E5C, + a3, + 20, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E94)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 21; + MissionControl(66, 0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023940)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239D0)(20, 0.0); + } + } } // 1023888: using guessed type int dword_1023888; // 1023930: using guessed type int dword_1023930; @@ -1524,44 +1524,44 @@ MissionControl(66, 0); // 1023E94: using guessed type int dword_1023E94; //----- (010108BC) -------------------------------------------------------- -void __userpurge CosmicPlaguePartTwoController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge CosmicPlaguePartTwoController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax -char *v4; // eax -int v5; // ST08_4 -CHAR *v6; // eax -char Dest; // [esp+Ch] [ebp-44h] + char* v3; // eax + char* v4; // eax + int v5; // ST08_4 + CHAR* v6; // eax + char Dest; // [esp+Ch] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E84)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(140, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023C50 == a3 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E84)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v4 = get_rc_string(141, 0); -TTextBox::Display(dword_1023E24, a1, v4, 4.0); -v5 = SpecialAddScore(1750000); -v6 = get_rc_string(78, 0); -_sprintf(&Dest, v6, v5); -if ( !AddRankProgress(11) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E84)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(140, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023C50 == a3) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E84)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v4 = get_rc_string(141, 0); + TTextBox::Display(dword_1023E24, a1, v4, 4.0); + v5 = SpecialAddScore(1750000); + v6 = get_rc_string(78, 0); + _sprintf(&Dest, v6, v5); + if (!AddRankProgress(11)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } } // 1023BBC: using guessed type int dword_1023BBC; // 1023C50: using guessed type int dword_1023C50; @@ -1569,36 +1569,36 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023E84: using guessed type int dword_1023E84; //----- (010109D5) -------------------------------------------------------- -void __userpurge SecretMissionYellowController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge SecretMissionYellowController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax + char* v3; // eax -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A1C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A3C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A3C)(23, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023C44)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A14)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A34)(11, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A34)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A34)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(142, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10239FC == a3 ) -{ -*(_DWORD *)(dword_1023BBC + 6) = 22; -MissionControl(66, 0); -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A1C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A3C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A3C)(23, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023C44)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A14)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A34)(11, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A34)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A34)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(142, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10239FC == a3) + { + *(_DWORD*)(dword_1023BBC + 6) = 22; + MissionControl(66, 0); + } } // 10239FC: using guessed type int dword_10239FC; // 1023A14: using guessed type int dword_1023A14; @@ -1609,32 +1609,32 @@ MissionControl(66, 0); // 1023C44: using guessed type int dword_1023C44; //----- (01010AD3) -------------------------------------------------------- -void __userpurge SecretMissionRedController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge SecretMissionRedController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax + char* v3; // eax -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A04)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A24)(11, 2.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A24)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A24)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(143, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10239EC == a3 ) -{ -*(_DWORD *)(dword_1023BBC + 6) = 23; -MissionControl(66, 0); -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A04)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A24)(11, 2.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A24)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A24)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(143, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10239EC == a3) + { + *(_DWORD*)(dword_1023BBC + 6) = 23; + MissionControl(66, 0); + } } // 10239EC: using guessed type int dword_10239EC; // 1023A04: using guessed type int dword_1023A04; @@ -1642,46 +1642,46 @@ MissionControl(66, 0); // 1023BBC: using guessed type int dword_1023BBC; //----- (01010B85) -------------------------------------------------------- -void __userpurge SecretMissionGreenController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge SecretMissionGreenController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax -char *v4; // eax -int v5; // ST20_4 -CHAR *v6; // eax -char Dest; // [esp+24h] [ebp-44h] + char* v3; // eax + char* v4; // eax + int v5; // ST20_4 + CHAR* v6; // eax + char Dest; // [esp+24h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A0C)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A2C)(11, 1.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A2C)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A2C)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(144, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10239F4 == a3 ) -{ -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v4 = get_rc_string(145, 0); -TTextBox::Display(dword_1023E24, a1, v4, 4.0); -v5 = SpecialAddScore(1500000); -v6 = get_rc_string(78, 0); -_sprintf(&Dest, v6, v5); -if ( !AddRankProgress(10) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A0C)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A2C)(11, 1.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A2C)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A2C)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(144, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10239F4 == a3) + { + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v4 = get_rc_string(145, 0); + TTextBox::Display(dword_1023E24, a1, v4, 4.0); + v5 = SpecialAddScore(1500000); + v6 = get_rc_string(78, 0); + _sprintf(&Dest, v6, v5); + if (!AddRankProgress(10)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } } // 10239F4: using guessed type int dword_10239F4; // 1023A0C: using guessed type int dword_1023A0C; @@ -1690,58 +1690,58 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023D14: using guessed type int dword_1023D14; //----- (01010CC2) -------------------------------------------------------- -void __userpurge TimeWarpController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge TimeWarpController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST10_4 -CHAR *v4; // eax -int v5; // ecx -char Dest; // [esp+14h] [ebp-44h] + int v3; // ST10_4 + CHAR* v4; // eax + int v5; // ecx + char Dest; // [esp+14h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 25; -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E34)( -dword_1023E34, -a3, -7, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EE4)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(146, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10237C4 == a3 -|| (struct TPinballComponent *)dword_10237CC == a3 -|| (struct TPinballComponent *)dword_10237E8 == a3 -|| (struct TPinballComponent *)dword_10237F0 == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__fastcall ***)(int, struct TPinballComponent *, signed int, _DWORD))dword_1023E34)( -dword_1023E34, -a3, -20, -0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EE4)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 24; -MissionControl(66, 0); -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 25; + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E34)( + dword_1023E34, + a3, + 7, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EE4)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(146, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10237C4 == a3 + || (struct TPinballComponent*)dword_10237CC == a3 + || (struct TPinballComponent*)dword_10237E8 == a3 + || (struct TPinballComponent*)dword_10237F0 == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__fastcall * **)(int, struct TPinballComponent*, signed int, _DWORD))dword_1023E34)( + dword_1023E34, + a3, + 20, + 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EE4)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 24; + MissionControl(66, 0); + } + } } // 10237C4: using guessed type int dword_10237C4; // 10237CC: using guessed type int dword_10237CC; @@ -1753,77 +1753,77 @@ MissionControl(66, 0); // 1023EE4: using guessed type int dword_1023EE4; //----- (01010DD3) -------------------------------------------------------- -void __userpurge TimeWarpPartTwoController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge TimeWarpPartTwoController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax -char *v4; // eax -int v5; // eax -CHAR *v6; // ST30_4 -CHAR *v7; // eax -char *v8; // eax -int v9; // esi -CHAR *v10; // ST30_4 -CHAR *v11; // eax -char Dest; // [esp+38h] [ebp-44h] + char* v3; // eax + char* v4; // eax + int v5; // eax + CHAR* v6; // ST30_4 + CHAR* v7; // eax + char* v8; // eax + int v9; // esi + CHAR* v10; // ST30_4 + CHAR* v11; // eax + char Dest; // [esp+38h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023880)(7, -1.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239B8)(7, -1.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E54)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EBC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(147, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023980 == a3 ) -{ -v4 = get_rc_string(47, 0); -TTextBox::Display(dword_1023E24, a1, v4, 4.0); -if ( (**(int (__stdcall ***)(signed int, _DWORD))dword_1023CF4)(37, 0.0) > 1 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023CF4)(33, 5.0); -v5 = (**(int (__stdcall ***)(signed int, _DWORD))dword_1023CF4)(37, 0.0); -v6 = get_rc_string(word_10246EC[2 * (v5 - 1)], 1); -v7 = get_rc_string(174, 0); -_sprintf(&Dest, v7, v6); -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -} -} -else -{ -if ( (struct TPinballComponent *)dword_1023870 != a3 ) -return; -v8 = get_rc_string(46, 0); -TTextBox::Display(dword_1023E24, a1, v8, 4.0); -if ( (**(int (__stdcall ***)(signed int, _DWORD))dword_1023CF4)(37, 0.0) < 9 ) -{ -v9 = (**(int (__stdcall ***)(signed int, _DWORD))dword_1023CF4)(37, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023CF4)(41, 5.0); -v10 = get_rc_string(word_10246EC[2 * v9], 1); -v11 = get_rc_string(173, 0); -_sprintf(&Dest, v11, v10); -} -if ( !AddRankProgress(12) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D1C + 20))(); -} -} -SpecialAddScore(2000000); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023880)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239B8)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E54)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EBC)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023880)(7, -1.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239B8)(7, -1.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E54)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EBC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(147, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023980 == a3) + { + v4 = get_rc_string(47, 0); + TTextBox::Display(dword_1023E24, a1, v4, 4.0); + if ((**(int(__stdcall * **)(signed int, _DWORD))dword_1023CF4)(37, 0.0) > 1) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023CF4)(33, 5.0); + v5 = (**(int(__stdcall * **)(signed int, _DWORD))dword_1023CF4)(37, 0.0); + v6 = get_rc_string(word_10246EC[2 * (v5 - 1)], 1); + v7 = get_rc_string(174, 0); + _sprintf(&Dest, v7, v6); + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + } + } + else + { + if ((struct TPinballComponent*)dword_1023870 != a3) + return; + v8 = get_rc_string(46, 0); + TTextBox::Display(dword_1023E24, a1, v8, 4.0); + if ((**(int(__stdcall * **)(signed int, _DWORD))dword_1023CF4)(37, 0.0) < 9) + { + v9 = (**(int(__stdcall * **)(signed int, _DWORD))dword_1023CF4)(37, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023CF4)(41, 5.0); + v10 = get_rc_string(word_10246EC[2 * v9], 1); + v11 = get_rc_string(173, 0); + _sprintf(&Dest, v11, v10); + } + if (!AddRankProgress(12)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D1C + 20))(); + } + } + SpecialAddScore(2000000); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023880)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239B8)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E54)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EBC)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); } // 1023870: using guessed type int dword_1023870; // 1023880: using guessed type int dword_1023880; @@ -1837,57 +1837,57 @@ MissionControl(66, 0); // 10246EC: using guessed type __int16 word_10246EC[]; //----- (0101106F) -------------------------------------------------------- -void __userpurge MaelstromController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge MaelstromController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST18_4 -CHAR *v4; // eax -int v5; // edx -char Dest; // [esp+1Ch] [ebp-44h] + int v3; // ST18_4 + CHAR* v4; // eax + int v5; // edx + char Dest; // [esp+1Ch] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 3; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E4C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E7C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EAC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(148, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023A9C == a3 -|| (struct TPinballComponent *)dword_1023AA4 == a3 -|| (struct TPinballComponent *)dword_1023AAC == a3 -|| (struct TPinballComponent *)dword_1023ADC == a3 -|| (struct TPinballComponent *)dword_1023AE4 == a3 -|| (struct TPinballComponent *)dword_1023AEC == a3 -|| (struct TPinballComponent *)dword_1023B20 == a3 -|| (struct TPinballComponent *)dword_1023B28 == a3 -|| (struct TPinballComponent *)dword_1023B30 == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E4C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E7C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EAC)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 25; -MissionControl(66, 0); -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 3; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E4C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E7C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EAC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(148, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023A9C == a3 + || (struct TPinballComponent*)dword_1023AA4 == a3 + || (struct TPinballComponent*)dword_1023AAC == a3 + || (struct TPinballComponent*)dword_1023ADC == a3 + || (struct TPinballComponent*)dword_1023AE4 == a3 + || (struct TPinballComponent*)dword_1023AEC == a3 + || (struct TPinballComponent*)dword_1023B20 == a3 + || (struct TPinballComponent*)dword_1023B28 == a3 + || (struct TPinballComponent*)dword_1023B30 == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E4C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E7C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EAC)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 25; + MissionControl(66, 0); + } + } } // 1023888: using guessed type int dword_1023888; // 1023A9C: using guessed type int dword_1023A9C; @@ -1905,65 +1905,65 @@ MissionControl(66, 0); // 1023EAC: using guessed type int dword_1023EAC; //----- (010111D3) -------------------------------------------------------- -void __userpurge MaelstromPartTwoController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge MaelstromPartTwoController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST28_4 -CHAR *v4; // eax -int v5; // edx -char Dest; // [esp+30h] [ebp-44h] + int v3; // ST28_4 + CHAR* v4; // eax + int v5; // edx + char Dest; // [esp+30h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 3; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E64)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E74)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E84)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E9C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ECC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(149, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023B48 == a3 -|| (struct TPinballComponent *)dword_1023B50 == a3 -|| (struct TPinballComponent *)dword_1023B58 == a3 -|| (struct TPinballComponent *)dword_1023B84 == a3 -|| (struct TPinballComponent *)dword_1023B8C == a3 -|| (struct TPinballComponent *)dword_1023B94 == a3 -|| (struct TPinballComponent *)dword_1023BC8 == a3 -|| (struct TPinballComponent *)dword_1023BD0 == a3 -|| (struct TPinballComponent *)dword_1023BD8 == a3 -|| (struct TPinballComponent *)dword_1023BE0 == a3 -|| (struct TPinballComponent *)dword_1023BE8 == a3 -|| (struct TPinballComponent *)dword_1023BF0 == a3 -|| (struct TPinballComponent *)dword_1023C3C == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E64)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E74)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E84)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E9C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ECC)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 26; -MissionControl(66, 0); -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 3; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E64)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E74)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E84)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E9C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ECC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(149, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023B48 == a3 + || (struct TPinballComponent*)dword_1023B50 == a3 + || (struct TPinballComponent*)dword_1023B58 == a3 + || (struct TPinballComponent*)dword_1023B84 == a3 + || (struct TPinballComponent*)dword_1023B8C == a3 + || (struct TPinballComponent*)dword_1023B94 == a3 + || (struct TPinballComponent*)dword_1023BC8 == a3 + || (struct TPinballComponent*)dword_1023BD0 == a3 + || (struct TPinballComponent*)dword_1023BD8 == a3 + || (struct TPinballComponent*)dword_1023BE0 == a3 + || (struct TPinballComponent*)dword_1023BE8 == a3 + || (struct TPinballComponent*)dword_1023BF0 == a3 + || (struct TPinballComponent*)dword_1023C3C == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E64)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E74)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E84)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E9C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ECC)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 26; + MissionControl(66, 0); + } + } } // 1023888: using guessed type int dword_1023888; // 1023B48: using guessed type int dword_1023B48; @@ -1987,65 +1987,65 @@ MissionControl(66, 0); // 1023ECC: using guessed type int dword_1023ECC; //----- (010113A1) -------------------------------------------------------- -void __userpurge MaelstromPartThreeController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge MaelstromPartThreeController(int a1@ , int a2, struct TPinballComponent* a3) { -int v3; // ST30_4 -CHAR *v4; // eax -int v5; // edx -char Dest; // [esp+38h] [ebp-44h] + int v3; // ST30_4 + CHAR* v4; // eax + int v5; // edx + char Dest; // [esp+38h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 5; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E3C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E44)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E6C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EB4)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ED4)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EDC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = *(_DWORD *)(dword_1023888 + 6); -v4 = get_rc_string(150, 0); -_sprintf(&Dest, v4, v3); -TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_102372C == a3 -|| (struct TPinballComponent *)dword_1023734 == a3 -|| (struct TPinballComponent *)dword_102373C == a3 -|| (struct TPinballComponent *)dword_1023798 == a3 -|| (struct TPinballComponent *)dword_10237A0 == a3 -|| (struct TPinballComponent *)dword_10237A8 == a3 -|| (struct TPinballComponent *)dword_102389C == a3 -|| (struct TPinballComponent *)dword_10238A4 == a3 -|| (struct TPinballComponent *)dword_10238C0 == a3 -|| (struct TPinballComponent *)dword_10238C8 == a3 -|| (struct TPinballComponent *)dword_10238E8 == a3 ) -{ -v5 = *(_DWORD *)(dword_1023888 + 6) - 1; -*(_DWORD *)(dword_1023888 + 6) = v5; -if ( v5 ) -{ -MissionControl(67, a3); -} -else -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E3C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E44)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E6C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EB4)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023ED4)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EDC)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 27; -MissionControl(66, 0); -} -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 5; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E3C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E44)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E6C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EB4)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ED4)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EDC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = *(_DWORD*)(dword_1023888 + 6); + v4 = get_rc_string(150, 0); + _sprintf(&Dest, v4, v3); + TTextBox::Display(dword_1023E24, a1, &Dest, -1.0); + return; + } + if ((struct TPinballComponent*)dword_102372C == a3 + || (struct TPinballComponent*)dword_1023734 == a3 + || (struct TPinballComponent*)dword_102373C == a3 + || (struct TPinballComponent*)dword_1023798 == a3 + || (struct TPinballComponent*)dword_10237A0 == a3 + || (struct TPinballComponent*)dword_10237A8 == a3 + || (struct TPinballComponent*)dword_102389C == a3 + || (struct TPinballComponent*)dword_10238A4 == a3 + || (struct TPinballComponent*)dword_10238C0 == a3 + || (struct TPinballComponent*)dword_10238C8 == a3 + || (struct TPinballComponent*)dword_10238E8 == a3) + { + v5 = *(_DWORD*)(dword_1023888 + 6) - 1; + *(_DWORD*)(dword_1023888 + 6) = v5; + if (v5) + { + MissionControl(67, a3); + } + else + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E3C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E44)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E6C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EB4)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023ED4)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EDC)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 27; + MissionControl(66, 0); + } + } } // 102372C: using guessed type int dword_102372C; // 1023734: using guessed type int dword_1023734; @@ -2068,31 +2068,31 @@ MissionControl(66, 0); // 1023EDC: using guessed type int dword_1023EDC; //----- (01011582) -------------------------------------------------------- -void __userpurge MaelstromPartFourController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge MaelstromPartFourController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax + char* v3; // eax -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -*(_DWORD *)(dword_1023888 + 6) = 0; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EC4)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(151, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023924 == a3 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EC4)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 28; -MissionControl(66, 0); -} + if (a2 != 63) + { + if (a2 == 66) + { + *(_DWORD*)(dword_1023888 + 6) = 0; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EC4)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(151, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023924 == a3) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EC4)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 28; + MissionControl(66, 0); + } } // 1023888: using guessed type int dword_1023888; // 1023924: using guessed type int dword_1023924; @@ -2100,66 +2100,66 @@ MissionControl(66, 0); // 1023EC4: using guessed type int dword_1023EC4; //----- (01011612) -------------------------------------------------------- -void __userpurge MaelstromPartFiveController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge MaelstromPartFiveController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax + char* v3; // eax -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EBC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(152, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023870 == a3 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EBC)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 29; -MissionControl(66, 0); -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EBC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(152, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023870 == a3) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EBC)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 29; + MissionControl(66, 0); + } } // 1023870: using guessed type int dword_1023870; // 1023BBC: using guessed type int dword_1023BBC; // 1023EBC: using guessed type int dword_1023EBC; //----- (01011699) -------------------------------------------------------- -void __userpurge MaelstromPartSixController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge MaelstromPartSixController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax + char* v3; // eax -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023940)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239D0)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E5C)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E94)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(153, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023930 == a3 || (struct TPinballComponent *)dword_10239C8 == a3 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E5C)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E94)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 30; -MissionControl(66, 0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023940)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239D0)(20, 0.0); -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023940)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239D0)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E5C)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E94)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(153, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023930 == a3 || (struct TPinballComponent*)dword_10239C8 == a3) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E5C)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E94)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 30; + MissionControl(66, 0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023940)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239D0)(20, 0.0); + } } // 1023930: using guessed type int dword_1023930; // 1023940: using guessed type int dword_1023940; @@ -2170,34 +2170,34 @@ MissionControl(66, 0); // 1023E94: using guessed type int dword_1023E94; //----- (01011798) -------------------------------------------------------- -void __userpurge MaelstromPartSevenController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge MaelstromPartSevenController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax + char* v3; // eax -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -AdvanceWormHoleDestination(1); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239EC)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239F4)(7, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239FC)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(154, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_10239EC == a3 -|| (struct TPinballComponent *)dword_10239F4 == a3 -|| (struct TPinballComponent *)dword_10239FC == a3 ) -{ -*(_DWORD *)(dword_1023BBC + 6) = 31; -MissionControl(66, 0); -} + if (a2 != 63) + { + if (a2 == 66) + { + AdvanceWormHoleDestination(1); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239EC)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239F4)(7, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239FC)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(154, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_10239EC == a3 + || (struct TPinballComponent*)dword_10239F4 == a3 + || (struct TPinballComponent*)dword_10239FC == a3) + { + *(_DWORD*)(dword_1023BBC + 6) = 31; + MissionControl(66, 0); + } } // 10239EC: using guessed type int dword_10239EC; // 10239F4: using guessed type int dword_10239F4; @@ -2205,46 +2205,46 @@ MissionControl(66, 0); // 1023BBC: using guessed type int dword_1023BBC; //----- (0101184C) -------------------------------------------------------- -void __userpurge MaelstromPartEightController(int a1@, int a2, struct TPinballComponent *a3) +void __userpurge MaelstromPartEightController(int a1@ , int a2, struct TPinballComponent* a3) { -char *v3; // eax -int v4; // ST10_4 -CHAR *v5; // eax -char *v6; // eax -char Dest; // [esp+14h] [ebp-44h] + char* v3; // eax + int v4; // ST10_4 + CHAR* v5; // eax + char* v6; // eax + char Dest; // [esp+14h] [ebp-44h] -if ( a2 != 63 ) -{ -if ( a2 == 66 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239C0)(19, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E54)(7, 0.0); -} -else if ( a2 != 67 ) -{ -return; -} -v3 = get_rc_string(155, 0); -TTextBox::Display(dword_1023E24, a1, v3, -1.0); -return; -} -if ( (struct TPinballComponent *)dword_1023980 == a3 ) -{ -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023E54)(20, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_10239C0)(20, 0.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v4 = SpecialAddScore(5000000); -v5 = get_rc_string(78, 0); -_sprintf(&Dest, v5, v4); -v6 = get_rc_string(48, 0); -TTextBox::Display(dword_1023E1C, a1, v6, 4.0); -if ( !AddRankProgress(18) ) -{ -TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); -(*(void (**)(void))(*(_DWORD *)dword_1023D14 + 20))(); -} -} + if (a2 != 63) + { + if (a2 == 66) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239C0)(19, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E54)(7, 0.0); + } + else if (a2 != 67) + { + return; + } + v3 = get_rc_string(155, 0); + TTextBox::Display(dword_1023E24, a1, v3, -1.0); + return; + } + if ((struct TPinballComponent*)dword_1023980 == a3) + { + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023E54)(20, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_10239C0)(20, 0.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v4 = SpecialAddScore(5000000); + v5 = get_rc_string(78, 0); + _sprintf(&Dest, v5, v4); + v6 = get_rc_string(48, 0); + TTextBox::Display(dword_1023E1C, a1, v6, 4.0); + if (!AddRankProgress(18)) + { + TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); + (*(void (**)(void))(*(_DWORD*)dword_1023D14 + 20))(); + } + } } // 1023980: using guessed type int dword_1023980; // 10239C0: using guessed type int dword_10239C0; @@ -2253,292 +2253,292 @@ TTextBox::Display(dword_1023E24, a1, &Dest, 8.0); // 1023E54: using guessed type int dword_1023E54; //----- (01011985) -------------------------------------------------------- -void __stdcall GameoverController(int a1, struct TPinballComponent *a2) +void __stdcall GameoverController(int a1, struct TPinballComponent* a2) { -TTextBox *v2; // eax -int v3; // esi -int v4; // esi -int v5; // ecx -CHAR *v6; // eax -int v7; // esi -int v8; // esi -int v9; // ecx -int v10; // esi -CHAR *v11; // eax -char *v12; // eax -int v13; // [esp+10h] [ebp-94h] -int v14; // [esp+10h] [ebp-94h] -char Dest; // [esp+20h] [ebp-84h] + TTextBox* v2; // eax + int v3; // esi + int v4; // esi + int v5; // ecx + CHAR* v6; // eax + int v7; // esi + int v8; // esi + int v9; // ecx + int v10; // esi + CHAR* v11; // eax + char* v12; // eax + int v13; // [esp+10h] [ebp-94h] + int v14; // [esp+10h] [ebp-94h] + char Dest; // [esp+20h] [ebp-84h] -if ( a1 != 66 ) -{ -if ( a1 != 67 ) -return; -v2 = dword_1023E24; -v3 = *(_DWORD *)((char *)dword_1023E24 + 6); -if ( !(v3 & 0x100) ) -{ -if ( !(v3 & 0x200) ) -goto LABEL_33; -goto LABEL_18; -} -v4 = *(_DWORD *)((_BYTE *)dword_1023E24 + 6) & 0xF; -v5 = **(_DWORD **)((char *)dword_1025040 + 28 * v4 + 102); -v3 = v4 + 1; -if ( v5 >= 0 ) -{ -switch ( v3 ) -{ -case 1: -v13 = v5; -v6 = get_rc_string(180, 0); -break; -case 2: -v13 = v5; -v6 = get_rc_string(181, 0); -break; -case 3: -v13 = v5; -v6 = get_rc_string(182, 0); -break; -case 4: -v13 = v5; -v6 = get_rc_string(183, 0); -break; -default: -goto LABEL_9; -} -_sprintf(&Dest, v6, v13); -TTextBox::Display(dword_1023E24, 256, &Dest, 3.0); -if ( v3 == *(_DWORD *)((char *)dword_1025040 + 214) ) -v7 = 512; -else -v7 = v3 | 0x100; -goto LABEL_32; -} -LABEL_9: -*(_DWORD *)((char *)dword_1023E24 + 6) = 512; -v2 = dword_1023E24; -LABEL_18: -v8 = v3 & 0xF; -v9 = dword_1025598[9 * v8]; -v10 = v8 + 1; -if ( v9 > 0 ) -{ -switch ( v10 ) -{ -case 1: -v14 = v9; -v11 = get_rc_string(184, 0); -break; -case 2: -v14 = v9; -v11 = get_rc_string(185, 0); -break; -case 3: -v14 = v9; -v11 = get_rc_string(186, 0); -break; -case 4: -v14 = v9; -v11 = get_rc_string(187, 0); -break; -case 5: -v14 = v9; -v11 = get_rc_string(188, 0); -break; -default: -goto LABEL_33; -} -_sprintf(&Dest, v11, v14); -TTextBox::Display(dword_1023E24, 256, &Dest, 3.0); -if ( v10 == 5 ) -v7 = 0; -else -v7 = v10 | 0x200; -LABEL_32: -*(_DWORD *)((char *)dword_1023E24 + 6) = v7; -return; -} -LABEL_33: -*(_DWORD *)((char *)v2 + 6) = 256; -v12 = get_rc_string(172, 0); -TTextBox::Display(dword_1023E24, 256, v12, 10.0); -return; -} -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023EEC)(20, 0.0); -pb_mode_change(2); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A74)(1022, 0.0); -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A7C)(1022, 0.0); -*(_DWORD *)((char *)dword_1023E24 + 6) = 0; + if (a1 != 66) + { + if (a1 != 67) + return; + v2 = dword_1023E24; + v3 = *(_DWORD*)((char*)dword_1023E24 + 6); + if (!(v3 & 0x100)) + { + if (!(v3 & 0x200)) + goto LABEL_33; + goto LABEL_18; + } + v4 = *(_DWORD*)((_BYTE*)dword_1023E24 + 6) & 0xF; + v5 = **(_DWORD * *)((char*)dword_1025040 + 28 * v4 + 102); + v3 = v4 + 1; + if (v5 >= 0) + { + switch (v3) + { + case 1: + v13 = v5; + v6 = get_rc_string(180, 0); + break; + case 2: + v13 = v5; + v6 = get_rc_string(181, 0); + break; + case 3: + v13 = v5; + v6 = get_rc_string(182, 0); + break; + case 4: + v13 = v5; + v6 = get_rc_string(183, 0); + break; + default: + goto LABEL_9; + } + _sprintf(&Dest, v6, v13); + TTextBox::Display(dword_1023E24, 256, &Dest, 3.0); + if (v3 == *(_DWORD*)((char*)dword_1025040 + 214)) + v7 = 512; + else + v7 = v3 | 0x100; + goto LABEL_32; + } + LABEL_9: + *(_DWORD*)((char*)dword_1023E24 + 6) = 512; + v2 = dword_1023E24; + LABEL_18: + v8 = v3 & 0xF; + v9 = dword_1025598[9 * v8]; + v10 = v8 + 1; + if (v9 > 0) + { + switch (v10) + { + case 1: + v14 = v9; + v11 = get_rc_string(184, 0); + break; + case 2: + v14 = v9; + v11 = get_rc_string(185, 0); + break; + case 3: + v14 = v9; + v11 = get_rc_string(186, 0); + break; + case 4: + v14 = v9; + v11 = get_rc_string(187, 0); + break; + case 5: + v14 = v9; + v11 = get_rc_string(188, 0); + break; + default: + goto LABEL_33; + } + _sprintf(&Dest, v11, v14); + TTextBox::Display(dword_1023E24, 256, &Dest, 3.0); + if (v10 == 5) + v7 = 0; + else + v7 = v10 | 0x200; + LABEL_32: + *(_DWORD*)((char*)dword_1023E24 + 6) = v7; + return; + } + LABEL_33: + *(_DWORD*)((char*)v2 + 6) = 256; + v12 = get_rc_string(172, 0); + TTextBox::Display(dword_1023E24, 256, v12, 10.0); + return; + } + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023EEC)(20, 0.0); + pb_mode_change(2); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A74)(1022, 0.0); + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A7C)(1022, 0.0); + *(_DWORD*)((char*)dword_1023E24 + 6) = 0; } // 1023A74: using guessed type int dword_1023A74; // 1023A7C: using guessed type int dword_1023A7C; // 1023EEC: using guessed type int dword_1023EEC; //----- (01011B98) -------------------------------------------------------- -void __stdcall UnselectMissionController(int a1, struct TPinballComponent *a2) +void __stdcall UnselectMissionController(int a1, struct TPinballComponent* a2) { -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); } // 1023BBC: using guessed type int dword_1023BBC; //----- (01011BB5) -------------------------------------------------------- -void __stdcall MissionControl(int a1, struct TPinballComponent *a2) +void __stdcall MissionControl(int a1, struct TPinballComponent* a2) { -int v2; // ebx -signed int v3; // edi -void (__thiscall ***v4)(_DWORD, signed int, _DWORD); // ebx -void (__thiscall ***v5)(_DWORD, signed int, _DWORD); // ebx -char *v6; // eax -char *v7; // eax -int v8; // [esp+30h] [ebp-4h] + int v2; // ebx + signed int v3; // edi + void(__thiscall * **v4)(_DWORD, signed int, _DWORD); // ebx + void(__thiscall * **v5)(_DWORD, signed int, _DWORD); // ebx + char* v6; // eax + char* v7; // eax + int v8; // [esp+30h] [ebp-4h] -if ( dword_1023BBC ) -{ -v2 = *(_DWORD *)(dword_1023BBC + 6); -v3 = a1; -v8 = *(_DWORD *)(dword_1023BBC + 6); -switch ( a1 ) -{ -case 47: -if ( (struct TPinballComponent *)dword_1023978 == a2 && v2 > 1 ) -{ -v4 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A8C; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A8C)(34, 0.0); -(**v4)(v4, 20, 0.0); -v5 = (void (__thiscall ***)(_DWORD, signed int, _DWORD))dword_1023A94; -(**(void (__stdcall ***)(signed int, _DWORD))dword_1023A94)(34, 0.0); -(**v5)(v5, 20, 0.0); -v6 = get_rc_string(109, 0); -TTextBox::Display(dword_1023E24, (int)v5, v6, 4.0); -*(_DWORD *)(dword_1023BBC + 6) = 1; -MissionControl(66, 0); -v2 = v8; -} -break; -case 60: -if ( (struct TPinballComponent *)dword_1023978 == a2 && v2 ) -{ -if ( (**(int (__stdcall ***)(signed int, _DWORD))dword_1023978)(37, 0.0) == 1 ) -{ -v7 = get_rc_string(116, 0); -TTextBox::Display(dword_1023E24, v2, v7, 4.0); -} -break; -} -if ( dword_1023E24 == a2 ) -goto LABEL_14; -break; -case 1009: -LABEL_14: -v3 = 67; -break; -} -switch ( v2 ) -{ -case 0: -WaitingDeploymentController(v2, v3, a2); -break; -case 1: -SelectMissionController(v3, a2); -break; -case 2: -PracticeMissionController(v2, v3, a2); -break; -case 3: -LaunchTrainingController(v2, v3, a2); -break; -case 4: -ReentryTrainingController(v2, v3, a2); -break; -case 5: -ScienceMissionController(v2, v3, a2); -break; -case 6: -StrayCometController(v2, v3, a2); -break; -case 7: -BlackHoleThreatController(v2, v3, a2); -break; -case 8: -SpaceRadiationController(v2, v3, a2); -break; -case 9: -BugHuntController(v2, v3, a2); -break; -case 10: -AlienMenaceController(v2, v3, a2); -break; -case 11: -RescueMissionController(v2, v3, a2); -break; -case 12: -SatelliteController(v2, v3, a2); -break; -case 13: -ReconnaissanceController(v2, v3, a2); -break; -case 14: -DoomsdayMachineController(v2, v3, a2); -break; -case 15: -CosmicPlagueController(v2, v3, a2); -break; -case 16: -SecretMissionYellowController(v2, v3, a2); -break; -case 17: -TimeWarpController(v2, v3, a2); -break; -case 18: -MaelstromController(v2, v3, a2); -break; -case 20: -AlienMenacePartTwoController(v2, v3, a2); -break; -case 21: -CosmicPlaguePartTwoController(v2, v3, a2); -break; -case 22: -SecretMissionRedController(v2, v3, a2); -break; -case 23: -SecretMissionGreenController(v2, v3, a2); -break; -case 24: -TimeWarpPartTwoController(v2, v3, a2); -break; -case 25: -MaelstromPartTwoController(v2, v3, a2); -break; -case 26: -MaelstromPartThreeController(v2, v3, a2); -break; -case 27: -MaelstromPartFourController(v2, v3, a2); -break; -case 28: -MaelstromPartFiveController(v2, v3, a2); -break; -case 29: -MaelstromPartSixController(v2, v3, a2); -break; -case 30: -MaelstromPartSevenController(v2, v3, a2); -break; -case 31: -MaelstromPartEightController(v2, v3, a2); -break; -case 32: -GameoverController(v3, a2); -break; -default: -UnselectMissionController(v3, a2); -break; -} -} + if (dword_1023BBC) + { + v2 = *(_DWORD*)(dword_1023BBC + 6); + v3 = a1; + v8 = *(_DWORD*)(dword_1023BBC + 6); + switch (a1) + { + case 47: + if ((struct TPinballComponent*)dword_1023978 == a2 && v2 > 1) + { + v4 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A8C; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A8C)(34, 0.0); + (**v4)(v4, 20, 0.0); + v5 = (void(__thiscall * **)(_DWORD, signed int, _DWORD))dword_1023A94; + (**(void(__stdcall * **)(signed int, _DWORD))dword_1023A94)(34, 0.0); + (**v5)(v5, 20, 0.0); + v6 = get_rc_string(109, 0); + TTextBox::Display(dword_1023E24, (int)v5, v6, 4.0); + *(_DWORD*)(dword_1023BBC + 6) = 1; + MissionControl(66, 0); + v2 = v8; + } + break; + case 60: + if ((struct TPinballComponent*)dword_1023978 == a2 && v2) + { + if ((**(int(__stdcall * **)(signed int, _DWORD))dword_1023978)(37, 0.0) == 1) + { + v7 = get_rc_string(116, 0); + TTextBox::Display(dword_1023E24, v2, v7, 4.0); + } + break; + } + if (dword_1023E24 == a2) + goto LABEL_14; + break; + case 1009: + LABEL_14: + v3 = 67; + break; + } + switch (v2) + { + case 0: + WaitingDeploymentController(v2, v3, a2); + break; + case 1: + SelectMissionController(v3, a2); + break; + case 2: + PracticeMissionController(v2, v3, a2); + break; + case 3: + LaunchTrainingController(v2, v3, a2); + break; + case 4: + ReentryTrainingController(v2, v3, a2); + break; + case 5: + ScienceMissionController(v2, v3, a2); + break; + case 6: + StrayCometController(v2, v3, a2); + break; + case 7: + BlackHoleThreatController(v2, v3, a2); + break; + case 8: + SpaceRadiationController(v2, v3, a2); + break; + case 9: + BugHuntController(v2, v3, a2); + break; + case 10: + AlienMenaceController(v2, v3, a2); + break; + case 11: + RescueMissionController(v2, v3, a2); + break; + case 12: + SatelliteController(v2, v3, a2); + break; + case 13: + ReconnaissanceController(v2, v3, a2); + break; + case 14: + DoomsdayMachineController(v2, v3, a2); + break; + case 15: + CosmicPlagueController(v2, v3, a2); + break; + case 16: + SecretMissionYellowController(v2, v3, a2); + break; + case 17: + TimeWarpController(v2, v3, a2); + break; + case 18: + MaelstromController(v2, v3, a2); + break; + case 20: + AlienMenacePartTwoController(v2, v3, a2); + break; + case 21: + CosmicPlaguePartTwoController(v2, v3, a2); + break; + case 22: + SecretMissionRedController(v2, v3, a2); + break; + case 23: + SecretMissionGreenController(v2, v3, a2); + break; + case 24: + TimeWarpPartTwoController(v2, v3, a2); + break; + case 25: + MaelstromPartTwoController(v2, v3, a2); + break; + case 26: + MaelstromPartThreeController(v2, v3, a2); + break; + case 27: + MaelstromPartFourController(v2, v3, a2); + break; + case 28: + MaelstromPartFiveController(v2, v3, a2); + break; + case 29: + MaelstromPartSixController(v2, v3, a2); + break; + case 30: + MaelstromPartSevenController(v2, v3, a2); + break; + case 31: + MaelstromPartEightController(v2, v3, a2); + break; + case 32: + GameoverController(v3, a2); + break; + default: + UnselectMissionController(v3, a2); + break; + } + } } // 1023978: using guessed type int dword_1023978; // 1023A8C: using guessed type int dword_1023A8C;