if ( mountIdentity == 3 ) { sub_9B7BF0(plIndex); a5 = 49; playSound((int)&a5); __asm { fld qword ptr [esi+0E8h]; Load Real } *(_DWORD *)(currentPlayer_ptr + 224) = 0; *(_WORD *)(currentPlayer_ptr + 320) = 100; __asm { fstp [ebp+var_148] ; Store Real and Pop fld [ebp+var_148] ; Load Real } *(_WORD *)(currentPlayer_ptr + 322) = -1; *(_WORD *)(currentPlayer_ptr + 286) = 0; *(_DWORD *)(currentPlayer_ptr + 228) = 0; _vbaFpR4(); __asm { fcomp flt_B2C6E8 ; Compare Real and Pop fnstsw ax ; Store Status Word (no wait) } if ( !(HIBYTE(_AX) & 0x41) ) { __asm { fld flt_B2C6E8 ; Load Real fstp qword ptr [esi+0E8h]; Store Real and Pop } } v36 = *(_WORD *)(currentPlayer_ptr + 320); *(_WORD *)(currentPlayer_ptr + 284) = 0; *(_WORD *)(currentPlayer_ptr + 264) = 0; *(_WORD *)(currentPlayer_ptr + 102) = 0; *(_WORD *)(currentPlayer_ptr + 104) = 0; *(_WORD *)(currentPlayer_ptr + 92) = 0; *(_WORD *)(currentPlayer_ptr + 94) = 0; *(_WORD *)(currentPlayer_ptr + 100) = 0; *(_WORD *)(currentPlayer_ptr + 188) = v36; newNPCIndex = HIWORD(NPCS_COUNT) + 1; if ( __OFADD__(1, HIWORD(NPCS_COUNT)) ) goto LABEL_233; ++HIWORD(NPCS_COUNT); if ( *(_WORD *)(currentPlayer_ptr + 184) > 0 || *(_WORD *)(currentPlayer_ptr + 186) > 0 ) { sub_9BE6D0(plIndex); newNPCIndex = HIWORD(NPCS_COUNT); } newNPCIndexOffseted = newNPCIndex + 128; if ( (unsigned int)newNPCIndexOffseted >= 0x1409 ) _vbaGenerateBoundsError(v124, v125, v126); v39 = *(_WORD *)plIndex; newNPC = npc_or_layer_ptr + 344 * newNPCIndexOffseted; if ( v39 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); v141 = *(_WORD *)(Player_ptr + 388 * v39 + 262); __asm { fild [ebp+var_14C] ; Load Integer } *(_WORD *)(newNPC + 292) = -1; *(_WORD *)(newNPC + 298) = 100; __asm { fstp dword ptr [edi+0ECh]; Store Real and Pop } v41 = *(_WORD *)plIndex; if ( v41 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); if ( *(_WORD *)(Player_ptr + 388 * v41 + 266) == 1 ) { *(_WORD *)(newNPC + 226) = 95; } else { v42 = *(_WORD *)plIndex; if ( v42 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); if ( *(_WORD *)(Player_ptr + 388 * v42 + 266) == 2 ) { *(_WORD *)(newNPC + 226) = 98; } else { v43 = *(_WORD *)plIndex; if ( v43 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); if ( *(_WORD *)(Player_ptr + 388 * v43 + 266) == 3 ) { *(_WORD *)(newNPC + 226) = 99; } else { v44 = *(_WORD *)plIndex; if ( v44 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); if ( *(_WORD *)(Player_ptr + 388 * v44 + 266) == 4 ) { *(_WORD *)(newNPC + 226) = 100; } else { v45 = *(_WORD *)plIndex; if ( v45 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); if ( *(_WORD *)(Player_ptr + 388 * v45 + 266) == 5 ) { *(_WORD *)(newNPC + 226) = 148; } else { v46 = *(_WORD *)plIndex; if ( v46 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); if ( *(_WORD *)(Player_ptr + 388 * v46 + 266) == 6 ) { *(_WORD *)(newNPC + 226) = 149; } else { v47 = *(_WORD *)plIndex; if ( v47 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); if ( *(_WORD *)(Player_ptr + 388 * v47 + 266) == 7 ) { *(_WORD *)(newNPC + 226) = 150; } else { v48 = *(_WORD *)plIndex; if ( v48 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); if ( *(_WORD *)(Player_ptr + 388 * v48 + 266) == 8 ) *(_WORD *)(newNPC + 226) = 228; } } } } } } } *(_DWORD *)(newNPC + 240) = 0; *(_DWORD *)(newNPC + 136) = 0; *(_DWORD *)(newNPC + 144) = 0; *(_DWORD *)(newNPC + 244) = 1072693248; *(_DWORD *)(newNPC + 140) = 1077936128; *(_DWORD *)(newNPC + 148) = 1077936128; v49 = *(_WORD *)plIndex; if ( v49 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); v50 = *(_WORD *)plIndex; v149 = *(_WORD *)plIndex; if ( v50 >= 0xC9 ) { _vbaGenerateBoundsError(v124, v125, v126); JUMPOUT(*(int *)loc_9B5C1D); } _ECX = 97 * v50; _EAX = Player_ptr; __asm { fld qword ptr [eax+ecx*4+0D0h]; Load Real } _EDX = 97 * v49; __asm { fadd qword ptr [eax+edx*4+0C8h]; Add Real fsub ds:dbl_4024D8 ; Subtract Real fstp qword ptr [edi+80h]; Store Real and Pop fnstsw ax ; Store Status Word (no wait) } if ( _EAX & 0xD ) goto LABEL_232; v54 = *(_WORD *)plIndex; if ( v54 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); v55 = *(_WORD *)plIndex; v149 = *(_WORD *)plIndex; if ( v55 >= 0xC9 ) _vbaGenerateBoundsError(v124, v125, v126); _ECX = 97 * v54; _EDX = 97 * v149; _EAX = Player_ptr; __asm { fld qword ptr [eax+edx*4+0D8h]; Load Real } if ( dword_B25000 ) j__adj_fdiv_m64(LODWORD(dbl_4012D8), HIDWORD(dbl_4012D8)); else __asm { fdiv ds:dbl_4012D8 ; Divide Real } __asm { fadd qword ptr [eax+ecx*4+0C0h]; Add Real fsub ds:dbl_402690 ; Subtract Real fnstsw ax ; Store Status Word (no wait) } if ( _AX & 0xD ) goto LABEL_232; _vbaFPInt(); __asm { fstp qword ptr [edi+78h]; Store Real and Pop } *(_DWORD *)(newNPC + 160) = 0; *(_DWORD *)(newNPC + 152) = 0; *(_DWORD *)(newNPC + 164) = 1071644672; *(_DWORD *)(newNPC + 156) = 0; *(_WORD *)(newNPC + 302) = 10; *(_WORD *)(newNPC + 304) = *(_WORD *)plIndex; v60 = *(_WORD *)(currentPlayer_ptr + 240) - 1; if ( (unsigned int)v60 >= 5 ) _vbaGenerateBoundsError(v124, v125, v126); v61 = *(_WORD *)(currentPlayer_ptr + 274) - 1; if ( (unsigned int)v61 >= 7 ) _vbaGenerateBoundsError(v124, v125, v126); v140 = Hitbox_h_ptr[v60 + 4 * v61 + v61]; __asm { fild [ebp+var_150] ; Load Integer fstp qword ptr [esi+0D0h]; Store Real and Pop } return; }