Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int fn_vInitLevelLoop()
- {
- int v0; // lr@0
- int v1; // r0@1
- char v2; // r1@1
- int v3; // r0@5
- char v4; // r1@5
- int v5; // r0@9
- int v6; // STF4_4@9
- int v7; // r0@9
- int v8; // STF0_4@9
- int v9; // r0@9
- char *v10; // r0@9
- int v11; // r0@9
- int v12; // STE4_4@9
- int v13; // r0@9
- int v14; // STE0_4@9
- int v15; // r0@9
- int v16; // r0@9
- int v17; // r0@9
- char v18; // r1@9
- int v19; // r0@12
- int v20; // r0@12
- int v21; // r0@14
- int v22; // STC8_4@14
- int v23; // r0@14
- int v24; // STC4_4@14
- int v25; // r0@14
- int v26; // STB8_4@15
- int v27; // r0@15
- char v28; // r1@15
- int v29; // STB0_4@21
- int v30; // r0@23
- char v31; // r1@23
- unsigned int v38; // ST6C_4@57
- unsigned int v39; // ST68_4@57
- int v40; // r0@59
- int v41; // r0@59
- int v42; // ST2C_4@59
- int v43; // r0@59
- int v44; // ST28_4@59
- int v45; // r0@59
- int v46; // r0@59
- void *v47; // r0@59
- int v48; // r0@60
- char v49; // r1@60
- int v50; // r0@64
- char v51; // r1@64
- int v52; // r0@75
- int v53; // r0@75
- void *v54; // r0@75
- int v55; // r0@75
- int v56; // r0@75
- int v57; // r0@75
- char v59; // [sp+107h] [bp-4F1h]@60
- int v60; // [sp+110h] [bp-4E8h]@53
- int v61; // [sp+114h] [bp-4E4h]@53
- int v62; // [sp+11Ch] [bp-4DCh]@44
- int v63; // [sp+11Ch] [bp-4DCh]@47
- int v64; // [sp+11Ch] [bp-4DCh]@50
- int v65; // [sp+120h] [bp-4D8h]@44
- int v66; // [sp+120h] [bp-4D8h]@47
- int v67; // [sp+120h] [bp-4D8h]@50
- int v68; // [sp+124h] [bp-4D4h]@35
- int v69; // [sp+124h] [bp-4D4h]@38
- int v70; // [sp+124h] [bp-4D4h]@41
- int v71; // [sp+128h] [bp-4D0h]@32
- int v72; // [sp+12Ch] [bp-4CCh]@32
- int v73; // [sp+130h] [bp-4C8h]@29
- int v74; // [sp+134h] [bp-4C4h]@21
- int v75; // [sp+138h] [bp-4C0h]@18
- _DWORD *v76; // [sp+13Ch] [bp-4BCh]@21
- int v77; // [sp+140h] [bp-4B8h]@21
- _DWORD *i; // [sp+144h] [bp-4B4h]@14
- char v79; // [sp+14Bh] [bp-4ADh]@12
- int v80; // [sp+14Ch] [bp-4ACh]@12
- char v81; // [sp+150h] [bp-4A8h]@53
- char v82; // [sp+1C1h] [bp-437h]@53
- char v83; // [sp+1C2h] [bp-436h]@53
- char v84; // [sp+1C3h] [bp-435h]@53
- int v85; // [sp+1C4h] [bp-434h]@53
- __int16 v86; // [sp+1CAh] [bp-42Eh]@53
- char v87; // [sp+1CCh] [bp-42Ch]@53
- char v88; // [sp+2D0h] [bp-328h]@53
- unsigned int j; // [sp+3D8h] [bp-220h]@56
- int v91; // [sp+3DCh] [bp-21Ch]@53
- char v92; // [sp+3E0h] [bp-218h]@9
- int v93; // [sp+4E4h] [bp-114h]@9
- char v94; // [sp+5E8h] [bp-10h]@3
- char v95; // [sp+5E9h] [bp-Fh]@7
- char v96; // [sp+5EAh] [bp-Eh]@11
- char v97; // [sp+5EBh] [bp-Dh]@17
- _DWORD *v98; // [sp+5ECh] [bp-Ch]@19
- char v99; // [sp+5F1h] [bp-7h]@25
- char v100; // [sp+5F2h] [bp-6h]@62
- char v101; // [sp+5F3h] [bp-5h]@66
- int v102; // [sp+5FCh] [bp+4h]@1
- v102 = v0;
- SCT_fn_vInitMaterialForGoThrough();
- fn_v_ClearLoadedAnims(0);
- GLI_g_bSaveFog = 0;
- GLD_bSetBackgroundColorForDevice(0);
- g_AlphabetCharacterPointer = 0;
- g_AlphabetCharacterPointer_new = 0;
- g_bInGameMenu = 0;
- v1 = SNA_fn_ucGetLoadDscType(&g_bInGameMenu);
- v2 = 0;
- if ( v1 == 1 )
- v2 = 1;
- v94 = v2;
- if ( v1 == 1 )
- {
- SNA_fn_vOpenDscFileForReading(2);
- SNA_g_eFileCurrentlyOpened = 2;
- v1 = SNA_fn_vReadSectionFromDscFile(1);
- }
- v3 = SNA_fn_ucGetLoadDscType(v1);
- v4 = 0;
- if ( v3 == 1 )
- v4 = 1;
- v95 = v4;
- if ( v3 == 1 )
- {
- SNA_fn_vReadSectionFromDscFile(1);
- SNA_fn_vReadSectionFromDscFile(0xFFFF);
- SNA_fn_vCloseDscFile();
- v3 = 0;
- SNA_g_eFileCurrentlyOpened = 0;
- }
- v5 = fn_szGetLevelsDataPath(v3);
- v6 = v5;
- v7 = fn_p_szGetLevelName(v5);
- v8 = v7;
- v9 = fn_p_szGetLevelName(v7);
- sprintf(&v92, "%s\\%s\\%s.ptx", v6, v8, v9);
- v10 = TEX_SetNameOfBinaryFile(&v92);
- v11 = fn_szGetLevelsDataPath(v10);
- v12 = v11;
- v13 = fn_p_szGetLevelName(v11);
- v14 = v13;
- v15 = fn_p_szGetLevelName(v13);
- v16 = sprintf((char *)&v93, "%s\\%s\\%s.sna", v12, v14, v15);
- v17 = SNA_fn_ucGetLoadType(v16);
- v18 = 0;
- if ( v17 == 1 )
- v18 = 1;
- v96 = v18;
- if ( v17 == 1 )
- {
- v19 = fn_p_szGetLevelName(1);
- v79 = SNA_fn_ucGetLevelID(v19);
- GLI_xGetViewportCamera(*(signed __int16 *)&byte_150CE1[211], *(signed __int16 *)&byte_150CE1[213], &v80);
- v20 = v80;
- if ( !v80 )
- {
- GLI_xCreateCamera(&v80, 103);
- GLI_xSetCameraAspectAndRatio(v80, 1069547520, 1061158912);
- v20 = GLI_xSetViewportCamera(*(signed __int16 *)&byte_150CE1[211], *(signed __int16 *)&byte_150CE1[213], v80);
- }
- SNA_fn_vSetSaveLoadLevel(v20);
- SNA_g_ucNextRelocationTableToLoad = v79;
- byte_15FA61 = 0;
- SNA_fn_bReadAllMemoryBlocks((char *)&v93);
- SNA_g_ucNextRelocationTableToLoad = v79;
- byte_15FA61 = 1;
- v21 = fn_szGetLevelsDataPath(1);
- v22 = v21;
- v23 = fn_p_szGetLevelName(v21);
- v24 = v23;
- v25 = fn_p_szGetLevelName(v23);
- sprintf(&v92, "%s\\%s\\%s.gpt", v22, v24, v25);
- SNA_fn_xReadOpenGlobalPointersFile((int)&v92);
- SNA_g_stFixInfo[4] = (_DWORD *)SNA_fn_vReadPointerFromGlobalPointersFile();
- for ( i = 0; SNA_g_stFixInfo[4] > i; i = (_DWORD *)((char *)i + 1) )
- {
- v26 = (int)i;
- SNA_g_stFixInfo[v26 + 5] = (_DWORD *)SNA_fn_vReadPointerFromGlobalPointersFile();
- v27 = fn_h_StandardGameGetSuperObject(SNA_g_stFixInfo[(signed int)i + 5][1]);
- v28 = 0;
- if ( v27 )
- v28 = 1;
- v97 = v28;
- if ( v27 )
- {
- v75 = SNA_fn_vReadPointerFromGlobalPointersFile();
- if ( sub_8C0A0() == 2 )
- v98 = (_DWORD *)sub_8C0C0(v75);
- else
- v98 = 0;
- v76 = v98;
- fn_vStandardGameSetSuperObject(v98[1], v75);
- SNA_g_stFixInfo[(signed int)i + 5] = v76;
- v77 = sub_8C194(*v76);
- SNA_fn_vReadStructureFromGlobalPointersFile(v77, 88);
- v29 = SNA_fn_vReadPointerFromGlobalPointersFile();
- sub_8C11C(v75, v29);
- SNA_fn_vReadStructureFromGlobalPointersFile(&v74, 4);
- *(_DWORD *)(v75 + 20) = SNA_fn_vReadPointerFromGlobalPointersFile();
- *(_DWORD *)(v75 + 24) = SNA_fn_vReadPointerFromGlobalPointersFile();
- *(_DWORD *)(v75 + 28) = SNA_fn_vReadPointerFromGlobalPointersFile();
- sub_8C138(v75, v74);
- if ( unk_4CF5EC )
- {
- v30 = *(_DWORD *)(sub_8C0C0(v75) + 8);
- v31 = 0;
- if ( v30 )
- v31 = 1;
- v99 = v31;
- if ( v30 )
- fn_vDynamInit(v76, 0);
- }
- else
- {
- *(_BYTE *)(v76[1] + 41) &= 0xF7u;
- }
- }
- }
- unk_4CF5EC = 1;
- gp_stActualWorld = SNA_fn_vReadPointerFromGlobalPointersFile();
- gp_stDynamicWorld = SNA_fn_vReadPointerFromGlobalPointersFile();
- gp_stInactiveDynamicWorld = SNA_fn_vReadPointerFromGlobalPointersFile();
- SECT_hFatherSector = SNA_fn_vReadPointerFromGlobalPointersFile();
- g_hLoadedSuperObjectRoot = SECT_hFatherSector;
- gs_hFirstSubMapPosition = SNA_fn_vReadPointerFromGlobalPointersFile();
- SNA_fn_vReadStructureFromGlobalPointersFile(&g_stAlways, 28);
- unk_151974 = SNA_fn_vReadPointerFromGlobalPointersFile();
- unk_151978 = SNA_fn_vReadPointerFromGlobalPointersFile();
- v73 = SNA_fn_vReadPointerFromGlobalPointersFile();
- if ( SNA_g_stFixInfo[0] )
- {
- *SNA_g_stFixInfo[0] = v73;
- if ( v73 )
- *(_DWORD *)(v73 + 4) = SNA_g_stFixInfo[0];
- }
- v72 = unk_151978;
- v71 = 0;
- while ( v72 )
- {
- *(_DWORD *)(v72 + 8) = &unk_151974;
- *(_DWORD *)v72 = v71;
- v71 = v72;
- v72 = *(_DWORD *)(v72 + 4);
- }
- v68 = SNA_fn_vReadPointerFromGlobalPointersFile();
- if ( SNA_g_stFixInfo[1] && v68 )
- *(_DWORD *)(v68 + 4) = SNA_g_stFixInfo[1];
- v69 = SNA_fn_vReadPointerFromGlobalPointersFile();
- if ( SNA_g_stFixInfo[2] && v69 )
- *(_DWORD *)(v69 + 4) = SNA_g_stFixInfo[2];
- v70 = SNA_fn_vReadPointerFromGlobalPointersFile();
- if ( SNA_g_stFixInfo[3] && v70 )
- *(_DWORD *)(v70 + 4) = SNA_g_stFixInfo[3];
- SNA_fn_vReadStructureFromGlobalPointersFile(&g_stObjectTypes, 36);
- v65 = unk_151944;
- v62 = 0;
- while ( v65 )
- {
- *(_DWORD *)(v65 + 8) = &g_stObjectTypes;
- *(_DWORD *)v65 = v62;
- v62 = v65;
- v65 = *(_DWORD *)(v65 + 4);
- }
- v66 = unk_151950;
- v63 = 0;
- while ( v66 )
- {
- *(_DWORD *)(v66 + 8) = &unk_15194C;
- *(_DWORD *)v66 = v63;
- v63 = v66;
- v66 = *(_DWORD *)(v66 + 4);
- }
- v67 = unk_15195C;
- v64 = 0;
- while ( v67 )
- {
- *(_DWORD *)(v67 + 8) = &unk_151958;
- *(_DWORD *)v67 = v64;
- v64 = v67;
- v67 = *(_DWORD *)(v67 + 4);
- }
- v91 = *(_DWORD *)&byte_150CE1[519];
- v84 = g_stEngineStructure;
- strcpy(&v87, &byte_150CE1[60]);
- strcpy(&v88, &byte_150CE1[30]);
- v85 = *(_DWORD *)&byte_150CE1[331];
- v86 = *(_WORD *)&byte_150CE1[103];
- v83 = byte_150CE1[3107];
- v82 = byte_150CE1[3108];
- _R1 = *(_DWORD *)&byte_150CE1[443];
- __asm
- {
- FLDS S0, [R1,#4]
- FSTS S0, [SP,#0x600+var_22C]
- }
- memcpy(&v81, &byte_150CE1[99], 0x70u);
- SNA_fn_vReadStructureFromGlobalPointersFile(&g_stEngineStructure, 3120);
- *(_DWORD *)&byte_150CE1[443] = &byte_150CE1[451];
- *(_DWORD *)&byte_150CE1[451] = *(_DWORD *)&byte_150CE1[459];
- _R0 = &byte_150CE1[451];
- __asm
- {
- FLDS S0, [SP,#0x600+var_22C]
- FSTS S0, [R0,#4]
- }
- strcpy(&byte_150CE1[60], &v87);
- strcpy(&byte_150CE1[30], &v88);
- byte_150CE1[3107] = v83;
- byte_150CE1[3108] = v82;
- *(_DWORD *)&byte_150CE1[331] = v85;
- memcpy(&byte_150CE1[99], &v81, 0x70u);
- *(_DWORD *)&byte_150CE1[519] = v91;
- g_stEngineStructure = v84;
- v61 = *(_DWORD *)&byte_150CE1[483];
- v60 = 0;
- while ( v61 )
- {
- *(_DWORD *)(v61 + 8) = &byte_150CE1[479];
- *(_DWORD *)v61 = v60;
- v60 = v61;
- v61 = *(_DWORD *)(v61 + 4);
- }
- gp_stLight = SNA_fn_vReadPointerFromGlobalPointersFile();
- *(_DWORD *)&byte_150CE1[503] = SNA_fn_vReadPointerFromGlobalPointersFile();
- *(_DWORD *)&byte_150CE1[507] = 0;
- g_hCharacterLauchingSoundEvents = SNA_fn_vReadPointerFromGlobalPointersFile();
- g_hShadowPolygonVisualMaterial = SNA_fn_vReadPointerFromGlobalPointersFile();
- g_hShadowPolygonGameMaterialInit = SNA_fn_vReadPointerFromGlobalPointersFile();
- g_hShadowPolygonGameMaterial = SNA_fn_vReadPointerFromGlobalPointersFile();
- g_p_stTextureOfTextureShadow = SNA_fn_vReadPointerFromGlobalPointersFile();
- COL_g_d_lTaggedFacesTable = SNA_fn_vReadPointerFromGlobalPointersFile();
- for ( j = 0; j < 0xA; ++j )
- {
- v38 = j;
- g_p_hHandleOfElementForShadow[v38] = SNA_fn_vReadPointerFromGlobalPointersFile();
- v39 = j;
- p_hHandleOfGeometricShadowObject[v39] = SNA_fn_vReadPointerFromGlobalPointersFile();
- }
- g_hDemoSOList = SNA_fn_vReadPointerFromGlobalPointersFile();
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(&tdstStacks, 12, 16);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_stA3dGENERAL + 56 * unk_155EBC, unk_155EB4 - unk_155EBC, 56);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_a3_xVectors + 12 * unk_155ECC, unk_155EC4 - unk_155ECC, 12);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(
- p_a4_xQuaternions + 8 * unk_155EDC,
- unk_155ED4 - unk_155EDC,
- 8);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_stHierarchies + 4 * unk_155EEC, unk_155EE4 - unk_155EEC, 4);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_stNTTO + 6 * unk_155EFC, unk_155EF4 - unk_155EFC, 6);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_stOnlyFrames + 10 * unk_155F0C, unk_155F04 - unk_155F0C, 10);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_stChannels + 16 * unk_155F1C, unk_155F14 - unk_155F1C, 16);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_stFrames + 2 * unk_155F2C, unk_155F24 - unk_155F2C, 2);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_stFramesKF + 4 * unk_155F3C, unk_155F34 - unk_155F3C, 4);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(p_stKeyFrames + 36 * unk_155F4C, unk_155F44 - unk_155F4C, 36);
- SNA_fn_vReadArrayFromGlobalPointersFile(p_stEvents + 6 * unk_155F5C, unk_155F54 - unk_155F5C, 6);
- SNA_fn_vReadArrayWithoutPointerFromGlobalPointersFile(
- p_stMorphData + 8 * *(_DWORD *)algn_155F6C,
- unk_155F64 - *(_DWORD *)algn_155F6C,
- 8);
- g_AlphabetCharacterPointer = SNA_fn_vReadPointerFromGlobalPointersFile();
- g_AlphabetCharacterPointer_new = SNA_fn_vReadPointerFromGlobalPointersFile();
- GLI_g_hMenuBackgroundObject = SNA_fn_vReadPointerFromGlobalPointersFile();
- GLI_gp_stMenuBackgroundElement = **(_DWORD **)(GLI_g_hMenuBackgroundObject + 20);
- g_bBeginMapSoundEventFlag = SNA_fn_vReadPointerFromGlobalPointersFile();
- g_stBeginMapSoundEvent = SNA_fn_vReadPointerFromGlobalPointersFile();
- g_stBeginMapSoundEvent = SND_fn_pGetBinEvent();
- SNA_fn_vCloseGlobalPointersFile();
- *(_DWORD *)&byte_150CE1[467] = 0;
- *(_DWORD *)&byte_150CE1[471] = 0;
- *(_DWORD *)&byte_150CE1[475] = 0;
- SNA_g_ucNextRelocationTableToLoad = v79;
- byte_15FA61 = 3;
- v40 = GAM_fn_vActualizeAllGameViewportSize();
- GLI_vEndofGeometricLoad(v40);
- VIG_fn_vAddToProgressBar(1);
- SNA_g_ucNextRelocationTableToLoad = v79;
- byte_15FA61 = 2;
- v41 = fn_szGetLevelsDataPath(2);
- v42 = v41;
- v43 = fn_p_szGetLevelName(v41);
- v44 = v43;
- v45 = fn_p_szGetLevelName(v43);
- sprintf(&v92, "%s\\%s\\%s.snd", v42, v44, v45);
- SNA_fn_xReadOpenSoundTableFile(&v92);
- SNA_fn_vReadAndUpdateSoundPointers(&v92);
- SNA_fn_vSetLoadType(4);
- v46 = fn_vCopyProtectKeyToModels();
- fn_vInitAllObjectsWhenMapJustLoaded(v46);
- v47 = VIG_fn_vAddToProgressBar(1);
- CAM_fn_vInitCameras(v47);
- SNA_g_dwNumberOfRelocationTableLoaded = 0;
- fn_vInitDeadLoop();
- if ( g_stEngineStructure == 5 )
- {
- v59 = 0;
- v48 = fn_bLoadLevelSaveGameAfterLoadLevel();
- v49 = 0;
- if ( v48 )
- v49 = 1;
- v100 = v49;
- if ( v48 )
- {
- SAI_fn_bInitAllWhen(8);
- v59 = 1;
- }
- v50 = fn_bLoadPlayerSaveGameAfterLoadLevel();
- v51 = 0;
- if ( v50 )
- v51 = 1;
- v101 = v51;
- if ( v50 )
- {
- SAI_fn_bInitAllWhen(4);
- v59 = 1;
- }
- if ( v59 )
- fn_vInitAllObjectsWhenSavedGameJustLoaded();
- }
- SNA_fn_vSetLoadType(1);
- }
- if ( g_stEngineStructure == 5 || g_stEngineStructure == 3 )
- {
- if ( g_bBeginMapSoundEventFlag )
- {
- GAM_fn_lSaveBlockEventSlotMemory(g_stBeginMapSoundEvent, 0);
- SND_fn_lSendRequestSound(-1, g_lSoundObjectTypeMusic, g_stBeginMapSoundEvent);
- }
- }
- v52 = InitArrayOfDynamicFunction(&g_a_pfnDynamicFunction);
- v53 = IPT_fn_vResetInputEntry(v52);
- PLA_fn_vInitHeaps(v53);
- bFirst = 0;
- v54 = VIG_fn_vAddToProgressBar(1);
- VIG_fn_vRefreshActualVignette(v54);
- VIG_fn_vFreeVignette(&VIG_g_stActualVignette);
- GLI_cGlobalFogIsOn = 0;
- v55 = GLI_vInitWaterplaneModule(&GLI_cGlobalFogIsOn);
- IPT_fn_vActivateAllEntryElements(v55);
- unk_143554 = 0;
- v56 = IPT_fn_vReadInput(&unk_143554);
- IPT_fn_vReadInput(v56);
- g_hSOCurrentMainSector = 0;
- g_hSOPreviousMainSector = 0;
- v57 = AGO_vInit(&g_hSOPreviousMainSector);
- return fn_bLoadCurrentGameOptions(v57);
- }
Add Comment
Please, Sign In to add comment