mirror of
https://github.com/LostArtefacts/TR2X.git
synced 2025-01-24 06:54:50 +00:00
port Camera_Initialise
This commit is contained in:
parent
488d0aed41
commit
e0fbe19afb
@ -69,10 +69,10 @@
|
||||
</g>
|
||||
<g transform="translate(0 116)">
|
||||
<text x="0" y="7.50">Tomb2.exe progress according to the physical function order:</text>
|
||||
<text class="todo" style="font-size: 12px; " x="747" y="9"><tspan text-anchor="end"><tspan class="decompiled">1.17% (14)</tspan> · <tspan class="known">96.42% (1157)</tspan> · <tspan class="todo">0.67% (8)</tspan> · <tspan class="unused">1.75% (21)</tspan></tspan></text>
|
||||
<text class="todo" style="font-size: 12px; " x="747" y="9"><tspan text-anchor="end"><tspan class="decompiled">1.25% (15)</tspan> · <tspan class="known">96.33% (1156)</tspan> · <tspan class="todo">0.67% (8)</tspan> · <tspan class="unused">1.75% (21)</tspan></tspan></text>
|
||||
<g transform="translate(0 20)">
|
||||
<rect width="8.72" height="6" x="0" y="0" class="decompiled"/>
|
||||
<rect width="720.23" height="6" x="8.72" y="0" class="known"/>
|
||||
<rect width="9.34" height="6" x="0" y="0" class="decompiled"/>
|
||||
<rect width="719.61" height="6" x="9.34" y="0" class="known"/>
|
||||
<rect width="4.98" height="6" x="728.95" y="0" class="todo"/>
|
||||
<rect width="13.07" height="6" x="733.93" y="0" class="unused"/>
|
||||
</g>
|
||||
@ -200,7 +200,7 @@
|
||||
<rect width="12" height="12" x="300" y="30" class="known"><title>int32_t __cdecl Creature_Vault(int16_t item_num, int16_t angle, int32_t vault, int32_t shift);</title></rect>
|
||||
<rect width="12" height="12" x="315" y="30" class="known"><title>void __cdecl Creature_Kill(struct ITEM_INFO *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state);</title></rect>
|
||||
<rect width="12" height="12" x="330" y="30" class="known"><title>void __cdecl Creature_GetBaddieTarget(int16_t item_num, int32_t goody);</title></rect>
|
||||
<rect width="12" height="12" x="345" y="30" class="known"><title>void __cdecl Camera_Initialise(void);</title></rect>
|
||||
<rect width="12" height="12" x="345" y="30" class="decompiled"><title>void __cdecl Camera_Initialise(void);</title></rect>
|
||||
<rect width="12" height="12" x="360" y="30" class="known"><title>void __cdecl Camera_Move(struct GAME_VECTOR *ideal, int32_t speed);</title></rect>
|
||||
<rect width="12" height="12" x="375" y="30" class="known"><title>void __cdecl Camera_Clip(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom);</title></rect>
|
||||
<rect width="12" height="12" x="390" y="30" class="known"><title>void __cdecl Camera_Shift(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom);</title></rect>
|
||||
@ -1064,8 +1064,8 @@
|
||||
<rect width="12" height="12" x="510" y="285" class="known"><title>void __cdecl GetSavedGamesList(REQUEST_INFO *req);</title></rect>
|
||||
<rect width="12" height="12" x="525" y="285" class="known"><title>void __cdecl DisplayCredits(void);</title></rect>
|
||||
<rect width="12" height="12" x="540" y="285" class="known"><title>BOOL __cdecl S_FrontEndCheck(void);</title></rect>
|
||||
<rect width="12" height="12" x="555" y="285" class="known"><title>BOOL __cdecl S_SaveGame(LPCVOID saveData, DWORD saveSize, int32_t slotNumber);</title></rect>
|
||||
<rect width="12" height="12" x="570" y="285" class="known"><title>BOOL __cdecl S_LoadGame(LPVOID saveData, DWORD saveSize, int32_t slotNumber);</title></rect>
|
||||
<rect width="12" height="12" x="555" y="285" class="known"><title>int32_t __cdecl S_SaveGame(const void *save_data, uint32_t save_size, int32_t slot_num);</title></rect>
|
||||
<rect width="12" height="12" x="570" y="285" class="known"><title>int32_t __cdecl S_LoadGame(void *save_data, uint32_t save_size, int32_t slot_num);</title></rect>
|
||||
<rect width="12" height="12" x="585" y="285" class="known"><title>void __cdecl HWR_InitState(void);</title></rect>
|
||||
<rect width="12" height="12" x="600" y="285" class="known"><title>void __cdecl HWR_ResetTexSource(void);</title></rect>
|
||||
<rect width="12" height="12" x="615" y="285" class="known"><title>void __cdecl HWR_ResetColorKey(void);</title></rect>
|
||||
@ -1098,7 +1098,7 @@
|
||||
<rect width="12" height="12" x="270" y="300" class="known"><title>void __cdecl Shell_Shutdown(void);</title></rect>
|
||||
<rect width="12" height="12" x="285" y="300" class="todo"><title>sub_44E860</title></rect>
|
||||
<rect width="12" height="12" x="300" y="300" class="todo"><title>sub_44E880</title></rect>
|
||||
<rect width="12" height="12" x="315" y="300" class="decompiled"><title>void __cdecl Shell_ExitSystem(LPCTSTR message);</title></rect>
|
||||
<rect width="12" height="12" x="315" y="300" class="decompiled"><title>void __cdecl Shell_ExitSystem(const char *message);</title></rect>
|
||||
<rect width="12" height="12" x="330" y="300" class="known"><title>void __cdecl ScreenShotPCX(void);</title></rect>
|
||||
<rect width="12" height="12" x="345" y="300" class="known"><title>DWORD __cdecl CompPCX(BYTE *bitmap, DWORD width, DWORD height, RGB888 *palette, BYTE **pcxData);</title></rect>
|
||||
<rect width="12" height="12" x="360" y="300" class="known"><title>DWORD __cdecl EncodeLinePCX(BYTE *src, DWORD width, BYTE *dst);</title></rect>
|
||||
@ -1125,7 +1125,7 @@
|
||||
<rect width="12" height="12" x="675" y="300" class="known"><title>int32_t __cdecl S_GetObjectBounds(int16_t *bPtr);</title></rect>
|
||||
<rect width="12" height="12" x="690" y="300" class="known"><title>void __cdecl S_InsertBackPolygon(int32_t x0, int32_t y0, int32_t x1, int32_t y1);</title></rect>
|
||||
<rect width="12" height="12" x="705" y="300" class="known"><title>void __cdecl S_PrintShadow(int16_t radius, int16_t *bPtr, ITEM_INFO *item);</title></rect>
|
||||
<rect width="12" height="12" x="720" y="300" class="known"><title>void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t roomNumber);</title></rect>
|
||||
<rect width="12" height="12" x="720" y="300" class="known"><title>void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num);</title></rect>
|
||||
<rect width="12" height="12" x="735" y="300" class="known"><title>void __cdecl S_CalculateStaticLight(int16_t adder);</title></rect>
|
||||
<rect width="12" height="12" x="0" y="315" class="known"><title>void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM_INFO *room);</title></rect>
|
||||
<rect width="12" height="12" x="15" y="315" class="known"><title>void __cdecl S_LightRoom(ROOM_INFO *room);</title></rect>
|
||||
@ -1183,13 +1183,13 @@
|
||||
<rect width="12" height="12" x="45" y="330" class="known"><title>void __cdecl SE_AdvancedDlgInit(HWND hwndDlg);</title></rect>
|
||||
<rect width="12" height="12" x="60" y="330" class="known"><title>HWND __cdecl SE_FindSetupDialog(void);</title></rect>
|
||||
<rect width="12" height="12" x="75" y="330" class="known"><title>BOOL __cdecl GameMain(void);</title></rect>
|
||||
<rect width="12" height="12" x="90" y="330" class="known"><title>__int16 __cdecl TitleSequence(void);</title></rect>
|
||||
<rect width="12" height="12" x="90" y="330" class="known"><title>int16_t __cdecl TitleSequence(void);</title></rect>
|
||||
<rect width="12" height="12" x="105" y="330" class="known"><title>void __cdecl CheckCheatMode(void);</title></rect>
|
||||
<rect width="12" height="12" x="120" y="330" class="known"><title>void __cdecl S_SaveSettings(void);</title></rect>
|
||||
<rect width="12" height="12" x="135" y="330" class="known"><title>void __cdecl S_LoadSettings(void);</title></rect>
|
||||
<rect width="12" height="12" x="150" y="330" class="known"><title>int32_t __cdecl S_SoundPlaySample(int32_t channel, UINT16 volume, int32_t pitch, int32_t pan);</title></rect>
|
||||
<rect width="12" height="12" x="165" y="330" class="known"><title>int32_t __cdecl S_Sound_CalculateSampleVolume(DWORD volume);</title></rect>
|
||||
<rect width="12" height="12" x="180" y="330" class="known"><title>int32_t __cdecl S_Sound_CalculateSamplePan(__int16 pan);</title></rect>
|
||||
<rect width="12" height="12" x="180" y="330" class="known"><title>int32_t __cdecl S_Sound_CalculateSamplePan(int16_t pan);</title></rect>
|
||||
<rect width="12" height="12" x="195" y="330" class="known"><title>int32_t __cdecl S_SoundPlaySampleLooped(int32_t channel, UINT16 volume, DWORD pitch, int32_t pan);</title></rect>
|
||||
<rect width="12" height="12" x="210" y="330" class="known"><title>void __cdecl S_SoundSetPanAndVolume(int32_t channel, int32_t pan, UINT16 volume);</title></rect>
|
||||
<rect width="12" height="12" x="225" y="330" class="known"><title>void __cdecl S_SoundSetPitch(int32_t channel, DWORD pitch);</title></rect>
|
||||
@ -1199,7 +1199,7 @@
|
||||
<rect width="12" height="12" x="285" y="330" class="known"><title>BOOL __cdecl S_SoundSampleIsPlaying(int32_t channel);</title></rect>
|
||||
<rect width="12" height="12" x="300" y="330" class="known"><title>bool __cdecl CD_Init(void);</title></rect>
|
||||
<rect width="12" height="12" x="315" y="330" class="known"><title>void __cdecl CD_Cleanup(void);</title></rect>
|
||||
<rect width="12" height="12" x="330" y="330" class="known"><title>void __cdecl S_CDPlay(__int16 trackID, BOOL isLooped);</title></rect>
|
||||
<rect width="12" height="12" x="330" y="330" class="known"><title>void __cdecl S_CDPlay(int16_t trackID, BOOL isLooped);</title></rect>
|
||||
<rect width="12" height="12" x="345" y="330" class="known"><title>void __cdecl S_CDStop(void);</title></rect>
|
||||
<rect width="12" height="12" x="360" y="330" class="known"><title>BOOL __cdecl StartSyncedAudio(int32_t trackID);</title></rect>
|
||||
<rect width="12" height="12" x="375" y="330" class="known"><title>DWORD __cdecl S_CDGetLoc(void);</title></rect>
|
||||
@ -1281,10 +1281,10 @@
|
||||
</g>
|
||||
<g transform="translate(0 531)">
|
||||
<text x="0" y="7.50">Tomb2.exe progress according to the function sizes:</text>
|
||||
<text class="todo" style="font-size: 12px; " x="747" y="9"><tspan text-anchor="end"><tspan class="decompiled">0.73%</tspan> · <tspan class="known">98.94%</tspan> · <tspan class="todo">0.02%</tspan> · <tspan class="unused">0.31%</tspan></tspan></text>
|
||||
<text class="todo" style="font-size: 12px; " x="747" y="9"><tspan text-anchor="end"><tspan class="decompiled">0.78%</tspan> · <tspan class="known">98.89%</tspan> · <tspan class="todo">0.02%</tspan> · <tspan class="unused">0.31%</tspan></tspan></text>
|
||||
<g transform="translate(0 20)">
|
||||
<rect width="5.42" height="6" x="0" y="0" class="decompiled"/>
|
||||
<rect width="739.12" height="6" x="5.42" y="0" class="known"/>
|
||||
<rect width="5.81" height="6" x="0" y="0" class="decompiled"/>
|
||||
<rect width="738.73" height="6" x="5.81" y="0" class="known"/>
|
||||
<rect width="0.13" height="6" x="744.54" y="0" class="todo"/>
|
||||
<rect width="2.33" height="6" x="744.67" y="0" class="unused"/>
|
||||
</g>
|
||||
@ -1395,7 +1395,7 @@
|
||||
<rect width="22.54" height="21.40" x="316.12" y="125.98" class="known"><title>void __cdecl Lara_Push(struct ITEM_INFO *item, struct ITEM_INFO *lara_item, struct COLL_INFO *coll, int32_t spaz_on, int32_t big_push);</title></rect>
|
||||
<rect width="22.54" height="21.14" x="316.12" y="150.38" class="known"><title>int32_t __cdecl LOS_ObjectOnLOS(struct GAME_VECTOR *start, struct GAME_VECTOR *target);</title></rect>
|
||||
<rect width="22.54" height="21.11" x="316.12" y="174.52" class="known"><title>void __fastcall gtmapA(int32_t y0, int32_t y1, BYTE *texPage);</title></rect>
|
||||
<rect width="22.54" height="20.89" x="316.12" y="198.63" class="known"><title>void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t roomNumber);</title></rect>
|
||||
<rect width="22.54" height="20.89" x="316.12" y="198.63" class="known"><title>void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num);</title></rect>
|
||||
<rect width="22.54" height="20.61" x="316.12" y="222.52" class="known"><title>void __cdecl DragonCollision(int16_t item_num, struct ITEM_INFO *laraitem, struct COLL_INFO *coll);</title></rect>
|
||||
<rect width="22.54" height="20.58" x="316.12" y="246.13" class="known"><title>int32_t __cdecl LOS_CheckX(struct GAME_VECTOR *start, struct GAME_VECTOR *target);</title></rect>
|
||||
<rect width="22.54" height="20.54" x="316.12" y="269.70" class="known"><title>int32_t __cdecl LOS_CheckZ(struct GAME_VECTOR *start, struct GAME_VECTOR *target);</title></rect>
|
||||
@ -1618,11 +1618,11 @@
|
||||
<rect width="11.85" height="12.08" x="477.44" y="228.99" class="known"><title>void __cdecl S_DrawScreenBox(int32_t sx, int32_t sy, int32_t z, int32_t width, int32_t height, BYTE colorIdx, GOURAUD_OUTLINE *gour, uint16_t flags);</title></rect>
|
||||
<rect width="11.85" height="12.02" x="477.44" y="244.07" class="known"><title>void __cdecl ControlCeilingSpikes(int16_t item_num);</title></rect>
|
||||
<rect width="11.85" height="11.97" x="477.44" y="259.09" class="known"><title>void __cdecl InitialiseBartoli(int16_t item_num);</title></rect>
|
||||
<rect width="11.85" height="11.97" x="477.44" y="274.06" class="known"><title>BOOL __cdecl S_SaveGame(LPCVOID saveData, DWORD saveSize, int32_t slotNumber);</title></rect>
|
||||
<rect width="11.85" height="11.97" x="477.44" y="274.06" class="known"><title>int32_t __cdecl S_SaveGame(const void *save_data, uint32_t save_size, int32_t slot_num);</title></rect>
|
||||
<rect width="11.85" height="11.91" x="477.44" y="289.03" class="known"><title>int32_t __cdecl GameStats(int32_t levelID);</title></rect>
|
||||
<rect width="11.85" height="11.86" x="477.44" y="303.94" class="known"><title>int32_t __cdecl Game_Cutscene_Start(int32_t level_num);</title></rect>
|
||||
<rect width="11.85" height="11.75" x="477.44" y="318.80" class="known"><title>int32_t __cdecl Inv_RemoveItem(int32_t itemNum);</title></rect>
|
||||
<rect width="11.85" height="11.75" x="477.44" y="333.55" class="known"><title>__int16 __cdecl TitleSequence(void);</title></rect>
|
||||
<rect width="11.85" height="11.75" x="477.44" y="333.55" class="known"><title>int16_t __cdecl TitleSequence(void);</title></rect>
|
||||
<rect width="11.85" height="11.70" x="477.44" y="348.30" class="known"><title>void __cdecl Inv_RingInit(struct RING_INFO *ring, int16_t type, struct INVENTORY_ITEM **list, int16_t qty, int16_t current, struct IMOTION_INFO *imo);</title></rect>
|
||||
<rect width="11.66" height="11.88" x="492.29" y="90.80" class="known"><title>void __cdecl ScreenShotPCX(void);</title></rect>
|
||||
<rect width="11.61" height="11.88" x="506.95" y="90.80" class="known"><title>bool __cdecl WinSndMakeSample(DWORD sampleIdx, LPWAVEFORMATEX format, const LPVOID data, DWORD dataSize);</title></rect>
|
||||
@ -1774,7 +1774,7 @@
|
||||
<rect width="9.23" height="8.65" x="581.78" y="146.07" class="known"><title>int32_t __cdecl TestHangSwingIn(struct ITEM_INFO *item, PHD_ANGLE angle);</title></rect>
|
||||
<rect width="9.23" height="8.65" x="594.01" y="146.07" class="known"><title>int32_t __cdecl OnDrawBridge(struct ITEM_INFO *item, int32_t x, int32_t y);</title></rect>
|
||||
<rect width="9.23" height="8.65" x="606.24" y="146.07" class="known"><title>void __cdecl S_AnimateTextures(int32_t nTicks);</title></rect>
|
||||
<rect width="9.16" height="8.65" x="618.48" y="146.07" class="known"><title>void __cdecl Camera_Initialise(void);</title></rect>
|
||||
<rect width="9.16" height="8.65" x="618.48" y="146.07" class="decompiled"><title>void __cdecl Camera_Initialise(void);</title></rect>
|
||||
<rect width="9.09" height="8.65" x="630.64" y="146.07" class="known"><title>bool __cdecl WinVidGetDisplayAdapters(void);</title></rect>
|
||||
<rect width="9.03" height="8.65" x="642.73" y="146.07" class="known"><title>void __cdecl ControlWaterSprite(int16_t fx_num);</title></rect>
|
||||
<rect width="9.03" height="8.65" x="654.76" y="146.07" class="known"><title>DWORD __cdecl CompPCX(BYTE *bitmap, DWORD width, DWORD height, RGB888 *palette, BYTE **pcxData);</title></rect>
|
||||
@ -1842,7 +1842,7 @@
|
||||
<rect width="7.86" height="8.12" x="588.72" y="169.65" class="known"><title>void __cdecl lara_col_back( ITEM_INFO *item, COLL_INFO *coll );</title></rect>
|
||||
<rect width="7.86" height="8.12" x="599.58" y="169.65" class="known"><title>void __cdecl HitTarget(struct ITEM_INFO *item, struct GAME_VECTOR *hitpos, int32_t damage);</title></rect>
|
||||
<rect width="7.86" height="8.12" x="610.44" y="169.65" class="known"><title>void __cdecl WindowControl(int16_t item_num);</title></rect>
|
||||
<rect width="7.86" height="8.12" x="621.31" y="169.65" class="known"><title>BOOL __cdecl S_LoadGame(LPVOID saveData, DWORD saveSize, int32_t slotNumber);</title></rect>
|
||||
<rect width="7.86" height="8.12" x="621.31" y="169.65" class="known"><title>int32_t __cdecl S_LoadGame(void *save_data, uint32_t save_size, int32_t slot_num);</title></rect>
|
||||
<rect width="7.86" height="8.12" x="632.17" y="169.65" class="known"><title>void __cdecl S_ChangeCtrlText(void);</title></rect>
|
||||
<rect width="7.79" height="8.12" x="643.03" y="169.65" class="known"><title>void __cdecl Output_SetNearZ(int32_t near_z);</title></rect>
|
||||
<rect width="7.79" height="8.12" x="653.82" y="169.65" class="known"><title>void __cdecl Box_TargetBox(struct LOT_INFO *lot, int16_t box_num);</title></rect>
|
||||
@ -1958,7 +1958,7 @@
|
||||
<rect width="6.70" height="6.30" x="627.09" y="210.71" class="known"><title>void __cdecl CreatePictureBuffer(void);</title></rect>
|
||||
<rect width="6.61" height="6.30" x="636.79" y="210.71" class="known"><title>int32_t __cdecl Box_UpdateLOT(struct LOT_INFO *lot, int32_t expansion);</title></rect>
|
||||
<rect width="6.61" height="6.30" x="646.41" y="210.71" class="known"><title>void __cdecl RemoveDrawnItem(int16_t item_num);</title></rect>
|
||||
<rect width="6.61" height="6.30" x="656.02" y="210.71" class="known"><title>void __cdecl S_CDPlay(__int16 trackID, BOOL isLooped);</title></rect>
|
||||
<rect width="6.61" height="6.30" x="656.02" y="210.71" class="known"><title>void __cdecl S_CDPlay(int16_t trackID, BOOL isLooped);</title></rect>
|
||||
<rect width="6.61" height="6.30" x="665.64" y="210.71" class="known"><title>BOOL __cdecl UT_CenterWindow(HWND hWnd);</title></rect>
|
||||
<rect width="6.53" height="6.30" x="675.25" y="210.71" class="known"><title>void __cdecl UT_MemBlt(BYTE *dstBuf, DWORD dstX, DWORD dstY, DWORD width, DWORD height, DWORD dstPitch, BYTE *srcBuf, DWORD srcX, DWORD srcY, DWORD srcPitch);</title></rect>
|
||||
<rect width="6.35" height="6.30" x="684.78" y="210.71" class="known"><title>bool __cdecl Output_VisibleZClip(struct PHD_VBUF *vtx0, struct PHD_VBUF *vtx1, struct PHD_VBUF *vtx2);</title></rect>
|
||||
@ -2158,7 +2158,7 @@
|
||||
<rect width="3.78" height="4.12" x="702.74" y="261.18" class="known"><title>void __cdecl ControlCutShotgun(int16_t item_num);</title></rect>
|
||||
<rect width="3.78" height="4.12" x="709.53" y="261.18" class="known"><title>void __cdecl InitialiseRollingBall(int16_t item_num);</title></rect>
|
||||
<rect width="3.78" height="4.12" x="716.31" y="261.18" class="known"><title>int32_t __cdecl RenderErrorBox(int32_t errorCode);</title></rect>
|
||||
<rect width="3.78" height="4.12" x="723.09" y="261.18" class="decompiled"><title>void __cdecl Shell_ExitSystem(LPCTSTR message);</title></rect>
|
||||
<rect width="3.78" height="4.12" x="723.09" y="261.18" class="decompiled"><title>void __cdecl Shell_ExitSystem(const char *message);</title></rect>
|
||||
<rect width="3.78" height="4.12" x="729.88" y="261.18" class="known"><title>void __cdecl S_SoundStopAllSamples(void);</title></rect>
|
||||
<rect width="3.67" height="4.12" x="736.66" y="261.18" class="known"><title>int32_t __cdecl CheckForHoldingState(int32_t state);</title></rect>
|
||||
<rect width="3.67" height="4.12" x="743.33" y="261.18" class="known"><title>int32_t __cdecl WeaponObject(int32_t weapon_type);</title></rect>
|
||||
@ -2306,7 +2306,7 @@
|
||||
<rect width="2.57" height="2.50" x="733.30" y="300.51" class="known"><title>void __cdecl Inv_RingMotionRadius(struct RING_INFO *ring, int16_t target);</title></rect>
|
||||
<rect width="2.57" height="2.50" x="738.87" y="300.51" class="known"><title>LPCTSTR __cdecl GetFullPath(LPCTSTR fileName);</title></rect>
|
||||
<rect width="2.57" height="2.50" x="744.43" y="300.51" class="known"><title>void __cdecl ScreenClear(bool isPhdWinSize);</title></rect>
|
||||
<rect width="2.84" height="2.24" x="693.03" y="306.01" class="known"><title>int32_t __cdecl S_Sound_CalculateSamplePan(__int16 pan);</title></rect>
|
||||
<rect width="2.84" height="2.24" x="693.03" y="306.01" class="known"><title>int32_t __cdecl S_Sound_CalculateSamplePan(int16_t pan);</title></rect>
|
||||
<rect width="2.84" height="2.24" x="698.86" y="306.01" class="known"><title>void __cdecl FreeTexturePages(void);</title></rect>
|
||||
<rect width="2.84" height="2.24" x="704.70" y="306.01" class="known"><title>void __cdecl SE_PassMessageToImage(HWND hWnd, UINT uMsg, WPARAM wParam);</title></rect>
|
||||
<rect width="2.68" height="2.24" x="710.53" y="306.01" class="known"><title>void __cdecl Inv_RingMotionCameraPos(struct RING_INFO *ring, int16_t target);</title></rect>
|
||||
|
Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 354 KiB |
@ -705,6 +705,122 @@ typedef struct CREATURE_INFO {
|
||||
struct ITEM_INFO *enemy;
|
||||
} CREATURE_INFO;
|
||||
|
||||
typedef enum CAMERA_TYPE {
|
||||
CAM_CHASE = 0,
|
||||
CAM_FIXED = 1,
|
||||
CAM_LOOK = 2,
|
||||
CAM_COMBAT = 3,
|
||||
CAM_CINEMATIC = 4,
|
||||
CAM_HEAVY = 5,
|
||||
} CAMERA_TYPE;
|
||||
|
||||
typedef struct GAME_VECTOR {
|
||||
int32_t x;
|
||||
int32_t y;
|
||||
int32_t z;
|
||||
int16_t room_num;
|
||||
int16_t box_num;
|
||||
} GAME_VECTOR;
|
||||
|
||||
typedef struct __unaligned CAMERA_INFO {
|
||||
struct GAME_VECTOR pos;
|
||||
struct GAME_VECTOR target;
|
||||
enum CAMERA_TYPE type;
|
||||
int32_t shift;
|
||||
uint32_t flags;
|
||||
int32_t fixed_camera;
|
||||
int32_t num_frames;
|
||||
int32_t bounce;
|
||||
int32_t underwater;
|
||||
int32_t target_distance;
|
||||
int32_t target_square;
|
||||
int16_t target_angle;
|
||||
int16_t actual_angle;
|
||||
int16_t target_elevation;
|
||||
int16_t box;
|
||||
int16_t num;
|
||||
int16_t last;
|
||||
int16_t timer;
|
||||
int16_t speed;
|
||||
struct ITEM_INFO *item;
|
||||
struct ITEM_INFO *last_item;
|
||||
struct OBJECT_VECTOR *fixed;
|
||||
bool is_lara_mic;
|
||||
struct PHD_VECTOR mic_pos;
|
||||
} CAMERA_INFO;
|
||||
|
||||
typedef struct __unaligned LARA_ARM {
|
||||
int16_t *frame_base;
|
||||
int16_t frame_num;
|
||||
int16_t anim_num;
|
||||
int16_t lock;
|
||||
int16_t y_rot;
|
||||
int16_t x_rot;
|
||||
int16_t z_rot;
|
||||
int16_t flash_gun;
|
||||
} LARA_ARM;
|
||||
|
||||
typedef struct __unaligned AMMO_INFO {
|
||||
int32_t ammo;
|
||||
} AMMO_INFO;
|
||||
|
||||
typedef struct __unaligned LARA_INFO {
|
||||
int16_t item_num;
|
||||
int16_t gun_status;
|
||||
int16_t gun_type;
|
||||
int16_t request_gun_type;
|
||||
int16_t last_gun_type;
|
||||
int16_t calc_fallspeed;
|
||||
int16_t water_status;
|
||||
int16_t climb_status;
|
||||
int16_t pose_count;
|
||||
int16_t hit_frame;
|
||||
int16_t hit_direction;
|
||||
int16_t air;
|
||||
int16_t dive_count;
|
||||
int16_t death_count;
|
||||
int16_t current_active;
|
||||
int16_t spaz_effect_count;
|
||||
int16_t flare_age;
|
||||
int16_t skidoo;
|
||||
int16_t weapon_item;
|
||||
int16_t back_gun;
|
||||
int16_t flare_frame;
|
||||
uint16_t flare_control_left : 1;
|
||||
uint16_t flare_control_right : 1;
|
||||
uint16_t extra_anim : 1;
|
||||
uint16_t look : 1;
|
||||
uint16_t burn : 1;
|
||||
uint16_t keep_ducked : 1;
|
||||
uint16_t can_monkey_swing : 1;
|
||||
uint16_t pad : 9;
|
||||
int32_t water_surface_dist;
|
||||
struct PHD_VECTOR last_pos;
|
||||
struct FX_INFO *spaz_effect;
|
||||
uint32_t mesh_effects;
|
||||
int16_t *mesh_ptrs[15];
|
||||
struct ITEM_INFO *target;
|
||||
int16_t target_angles[2];
|
||||
int16_t turn_rate;
|
||||
int16_t move_angle;
|
||||
int16_t head_y_rot;
|
||||
int16_t head_x_rot;
|
||||
int16_t head_z_rot;
|
||||
int16_t torso_y_rot;
|
||||
int16_t torso_x_rot;
|
||||
int16_t torso_z_rot;
|
||||
struct LARA_ARM left_arm;
|
||||
struct LARA_ARM right_arm;
|
||||
struct AMMO_INFO pistol_ammo;
|
||||
struct AMMO_INFO magnum_ammo;
|
||||
struct AMMO_INFO uzi_ammo;
|
||||
struct AMMO_INFO shotgun_ammo;
|
||||
struct AMMO_INFO harpoon_ammo;
|
||||
struct AMMO_INFO grenade_ammo;
|
||||
struct AMMO_INFO m16_ammo;
|
||||
struct CREATURE_INFO *creature;
|
||||
} LARA_INFO;
|
||||
|
||||
# FUNCTIONS
|
||||
# Flags:
|
||||
# - to do
|
||||
@ -737,7 +853,7 @@ typedef struct CREATURE_INFO {
|
||||
00402430 00000033 - void __cdecl Output_SortPolyList(void);
|
||||
00402470 000000C5 - void __cdecl Output_QuickSort(int32_t left, int32_t right);
|
||||
00402540 00000036 - void __cdecl Output_PrintPolyList(uint8_t *surface_ptr);
|
||||
00402580 000000A1 - void __cdecl Viewport_AlterFOV(int16_t fov);
|
||||
00402580 000000A1 * void __cdecl Viewport_AlterFOV(int16_t fov);
|
||||
00402690 00000095 - void __cdecl Output_SetNearZ(int32_t near_z);
|
||||
004026E0 0000006B - void __cdecl Output_SetFarZ(int32_t far_z);
|
||||
00402700 00000266 - void __cdecl Viewport_Init(int16_t x, int16_t y, int32_t width, int32_t height, int32_t near_z, int32_t far_z, int16_t view_angle, int32_t screen_width, int32_t screen_height);
|
||||
@ -851,7 +967,7 @@ typedef struct CREATURE_INFO {
|
||||
004103C0 000001DB - void __cdecl Creature_GetBaddieTarget(int16_t item_num, int32_t goody);
|
||||
|
||||
# game/camera.c
|
||||
004105A0 000000B0 - void __cdecl Camera_Initialise(void);
|
||||
004105A0 000000B0 + void __cdecl Camera_Initialise(void);
|
||||
00410650 00000372 - void __cdecl Camera_Move(struct GAME_VECTOR *ideal, int32_t speed);
|
||||
004109D0 000000D7 - void __cdecl Camera_Clip(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom);
|
||||
00410AB0 00000154 - void __cdecl Camera_Shift(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom);
|
||||
@ -862,7 +978,7 @@ typedef struct CREATURE_INFO {
|
||||
00411680 0000018E - void __cdecl Camera_Combat(struct ITEM_INFO *item);
|
||||
00411810 000001E2 - void __cdecl Camera_Look(struct ITEM_INFO *item);
|
||||
00411A00 00000099 - void __cdecl Camera_Fixed(void);
|
||||
00411AA0 000004A9 - void __cdecl Camera_Update(void);
|
||||
00411AA0 000004A9 * void __cdecl Camera_Update(void);
|
||||
00411F50 0000000A - void __cdecl Camera_SetCutsceneTrack(int32_t track);
|
||||
00411F60 00000112 - int32_t __cdecl Game_Cutscene_Start(int32_t level_num);
|
||||
00412080 00000093 -R void __cdecl Misc_InitCinematicRooms(void);
|
||||
@ -1802,8 +1918,8 @@ typedef struct CREATURE_INFO {
|
||||
0044CA20 0000004C -R void __cdecl GetSavedGamesList(REQUEST_INFO *req);
|
||||
0044CA70 00000233 -R void __cdecl DisplayCredits(void);
|
||||
0044CCB0 00000165 -R BOOL __cdecl S_FrontEndCheck(void);
|
||||
0044CE20 00000114 -R BOOL __cdecl S_SaveGame(LPCVOID saveData, DWORD saveSize, int32_t slotNumber);
|
||||
0044CF40 00000096 -R BOOL __cdecl S_LoadGame(LPVOID saveData, DWORD saveSize, int32_t slotNumber);
|
||||
0044CE20 00000114 -R int32_t __cdecl S_SaveGame(const void *save_data, uint32_t save_size, int32_t slot_num);
|
||||
0044CF40 00000096 -R int32_t __cdecl S_LoadGame(void *save_data, uint32_t save_size, int32_t slot_num);
|
||||
0044CFE0 00000128 -R void __cdecl HWR_InitState(void);
|
||||
0044D110 00000029 -R void __cdecl HWR_ResetTexSource(void);
|
||||
0044D140 0000002B -R void __cdecl HWR_ResetColorKey(void);
|
||||
@ -1863,7 +1979,7 @@ typedef struct CREATURE_INFO {
|
||||
00450CC0 00000270 -R int32_t __cdecl S_GetObjectBounds(int16_t *bPtr);
|
||||
00450F30 00000046 -R void __cdecl S_InsertBackPolygon(int32_t x0, int32_t y0, int32_t x1, int32_t y1);
|
||||
00450F80 000001F1 -R void __cdecl S_PrintShadow(int16_t radius, int16_t *bPtr, ITEM_INFO *item);
|
||||
00451180 000002F6 -R void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t roomNumber);
|
||||
00451180 000002F6 -R void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num);
|
||||
00451480 00000031 -R void __cdecl S_CalculateStaticLight(int16_t adder);
|
||||
004514C0 00000124 -R void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM_INFO *room);
|
||||
004515F0 00000206 -R void __cdecl S_LightRoom(ROOM_INFO *room);
|
||||
@ -1921,13 +2037,13 @@ typedef struct CREATURE_INFO {
|
||||
00454950 0000000E -R void __cdecl SE_AdvancedDlgInit(HWND hwndDlg);
|
||||
00454960 00000011 -R HWND __cdecl SE_FindSetupDialog(void);
|
||||
00454980 000002D0 -R BOOL __cdecl GameMain(void);
|
||||
00454C50 00000110 -R __int16 __cdecl TitleSequence(void);
|
||||
00454C50 00000110 -R int16_t __cdecl TitleSequence(void);
|
||||
00454D60 0000032D -R void __cdecl CheckCheatMode(void);
|
||||
004550C0 0000007D -R void __cdecl S_SaveSettings(void);
|
||||
00455140 000000DB -R void __cdecl S_LoadSettings(void);
|
||||
00455220 00000046 -R int32_t __cdecl S_SoundPlaySample(int32_t channel, UINT16 volume, int32_t pitch, int32_t pan);
|
||||
00455270 0000002A -R int32_t __cdecl S_Sound_CalculateSampleVolume(DWORD volume);
|
||||
004552A0 00000026 -R int32_t __cdecl S_Sound_CalculateSamplePan(__int16 pan);
|
||||
004552A0 00000026 -R int32_t __cdecl S_Sound_CalculateSamplePan(int16_t pan);
|
||||
004552D0 00000046 -R int32_t __cdecl S_SoundPlaySampleLooped(int32_t channel, UINT16 volume, DWORD pitch, int32_t pan);
|
||||
00455320 00000039 -R void __cdecl S_SoundSetPanAndVolume(int32_t channel, int32_t pan, UINT16 volume);
|
||||
00455360 0000001C -R void __cdecl S_SoundSetPitch(int32_t channel, DWORD pitch);
|
||||
@ -1937,7 +2053,7 @@ typedef struct CREATURE_INFO {
|
||||
004553C0 0000001F -R BOOL __cdecl S_SoundSampleIsPlaying(int32_t channel);
|
||||
004553E0 00000077 -R bool __cdecl CD_Init(void);
|
||||
00455460 00000051 -R void __cdecl CD_Cleanup(void);
|
||||
00455500 0000006F -R void __cdecl S_CDPlay(__int16 trackID, BOOL isLooped);
|
||||
00455500 0000006F -R void __cdecl S_CDPlay(int16_t trackID, BOOL isLooped);
|
||||
00455570 00000039 -R void __cdecl S_CDStop(void);
|
||||
004555B0 00000084 -R BOOL __cdecl StartSyncedAudio(int32_t trackID);
|
||||
00455640 00000061 -R DWORD __cdecl S_CDGetLoc(void);
|
||||
@ -2050,5 +2166,10 @@ typedef struct CREATURE_INFO {
|
||||
004BF3E0 - struct PHD_VBUF g_PhdVBuf[1500];
|
||||
004D6B60 - float g_FltWinRight;
|
||||
004D6BF8 - int32_t g_PhdWinRight;
|
||||
004D778C - int32_t g_IsChunkyCamera;
|
||||
0051BD20 - char g_ErrorMessage[128];
|
||||
005206E0 - struct LARA_INFO g_Lara;
|
||||
005207BC - struct ITEM_INFO *g_LaraItem;
|
||||
005262F0 - struct ITEM_INFO g_Items[];
|
||||
00526320 - struct CAMERA_INFO g_Camera;
|
||||
005263CC - struct BOX_INFO *g_Boxes;
|
||||
|
@ -74,6 +74,7 @@ exe_sources = [
|
||||
|
||||
dll_sources = [
|
||||
'src/filesystem.c',
|
||||
'src/game/camera.c',
|
||||
'src/game/math.c',
|
||||
'src/game/matrix.c',
|
||||
'src/game/shell.c',
|
||||
|
37
src/game/camera.c
Normal file
37
src/game/camera.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include "game/camera.h"
|
||||
|
||||
#include "global/const.h"
|
||||
#include "global/funcs.h"
|
||||
#include "global/vars.h"
|
||||
|
||||
void __cdecl Camera_Initialise(void)
|
||||
{
|
||||
g_Camera.shift = g_LaraItem->pos.y - WALL_L;
|
||||
|
||||
g_Camera.target.x = g_LaraItem->pos.x;
|
||||
g_Camera.target.y = g_Camera.shift;
|
||||
g_Camera.target.z = g_LaraItem->pos.z;
|
||||
g_Camera.target.room_num = g_LaraItem->room_num;
|
||||
|
||||
g_Camera.pos.x = g_Camera.target.x;
|
||||
g_Camera.pos.y = g_Camera.shift;
|
||||
g_Camera.pos.z = g_Camera.target.z - 100;
|
||||
g_Camera.pos.room_num = g_LaraItem->room_num;
|
||||
|
||||
g_Camera.target_distance = WALL_L * 3 / 2;
|
||||
g_Camera.item = NULL;
|
||||
|
||||
g_Camera.num_frames = 1;
|
||||
if (!g_Lara.extra_anim) {
|
||||
g_Camera.type = CAM_CHASE;
|
||||
}
|
||||
|
||||
g_Camera.speed = 1;
|
||||
g_Camera.flags = 0;
|
||||
g_Camera.bounce = 0;
|
||||
g_Camera.num = -1;
|
||||
g_Camera.fixed_camera = 0;
|
||||
|
||||
Viewport_AlterFOV(GAME_FOV * PHD_DEGREE);
|
||||
Camera_Update();
|
||||
}
|
5
src/game/camera.h
Normal file
5
src/game/camera.h
Normal file
@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include "global/types.h"
|
||||
|
||||
void __cdecl Camera_Initialise(void);
|
@ -7,3 +7,5 @@
|
||||
#define PHD_135 (PHD_45 * 3) // = 24576 = 0x6000
|
||||
|
||||
#define W2V_MATRIX 14
|
||||
#define WALL_L 1024
|
||||
#define GAME_FOV 80
|
||||
|
@ -117,7 +117,6 @@
|
||||
#define Creature_Vault ((int32_t __cdecl (*)(int16_t item_num, int16_t angle, int32_t vault, int32_t shift))0x00410110)
|
||||
#define Creature_Kill ((void __cdecl (*)(struct ITEM_INFO *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state))0x00410250)
|
||||
#define Creature_GetBaddieTarget ((void __cdecl (*)(int16_t item_num, int32_t goody))0x004103C0)
|
||||
#define Camera_Initialise ((void __cdecl (*)(void))0x004105A0)
|
||||
#define Camera_Move ((void __cdecl (*)(struct GAME_VECTOR *ideal, int32_t speed))0x00410650)
|
||||
#define Camera_Clip ((void __cdecl (*)(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom))0x004109D0)
|
||||
#define Camera_Shift ((void __cdecl (*)(int32_t *x, int32_t *y, int32_t *h, int32_t target_x, int32_t target_y, int32_t target_h, int32_t left, int32_t top, int32_t right, int32_t bottom))0x00410AB0)
|
||||
@ -955,8 +954,8 @@
|
||||
#define GetSavedGamesList ((void __cdecl (*)(REQUEST_INFO *req))0x0044CA20)
|
||||
#define DisplayCredits ((void __cdecl (*)(void))0x0044CA70)
|
||||
#define S_FrontEndCheck ((BOOL __cdecl (*)(void))0x0044CCB0)
|
||||
#define S_SaveGame ((BOOL __cdecl (*)(LPCVOID saveData, DWORD saveSize, int32_t slotNumber))0x0044CE20)
|
||||
#define S_LoadGame ((BOOL __cdecl (*)(LPVOID saveData, DWORD saveSize, int32_t slotNumber))0x0044CF40)
|
||||
#define S_SaveGame ((int32_t __cdecl (*)(const void *save_data, uint32_t save_size, int32_t slot_num))0x0044CE20)
|
||||
#define S_LoadGame ((int32_t __cdecl (*)(void *save_data, uint32_t save_size, int32_t slot_num))0x0044CF40)
|
||||
#define HWR_InitState ((void __cdecl (*)(void))0x0044CFE0)
|
||||
#define HWR_ResetTexSource ((void __cdecl (*)(void))0x0044D110)
|
||||
#define HWR_ResetColorKey ((void __cdecl (*)(void))0x0044D140)
|
||||
@ -1012,7 +1011,7 @@
|
||||
#define S_GetObjectBounds ((int32_t __cdecl (*)(int16_t *bPtr))0x00450CC0)
|
||||
#define S_InsertBackPolygon ((void __cdecl (*)(int32_t x0, int32_t y0, int32_t x1, int32_t y1))0x00450F30)
|
||||
#define S_PrintShadow ((void __cdecl (*)(int16_t radius, int16_t *bPtr, ITEM_INFO *item))0x00450F80)
|
||||
#define S_CalculateLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t roomNumber))0x00451180)
|
||||
#define S_CalculateLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int16_t room_num))0x00451180)
|
||||
#define S_CalculateStaticLight ((void __cdecl (*)(int16_t adder))0x00451480)
|
||||
#define S_CalculateStaticMeshLight ((void __cdecl (*)(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM_INFO *room))0x004514C0)
|
||||
#define S_LightRoom ((void __cdecl (*)(ROOM_INFO *room))0x004515F0)
|
||||
@ -1068,13 +1067,13 @@
|
||||
#define SE_AdvancedDlgInit ((void __cdecl (*)(HWND hwndDlg))0x00454950)
|
||||
#define SE_FindSetupDialog ((HWND __cdecl (*)(void))0x00454960)
|
||||
#define GameMain ((BOOL __cdecl (*)(void))0x00454980)
|
||||
#define TitleSequence ((__int16 __cdecl (*)(void))0x00454C50)
|
||||
#define TitleSequence ((int16_t __cdecl (*)(void))0x00454C50)
|
||||
#define CheckCheatMode ((void __cdecl (*)(void))0x00454D60)
|
||||
#define S_SaveSettings ((void __cdecl (*)(void))0x004550C0)
|
||||
#define S_LoadSettings ((void __cdecl (*)(void))0x00455140)
|
||||
#define S_SoundPlaySample ((int32_t __cdecl (*)(int32_t channel, UINT16 volume, int32_t pitch, int32_t pan))0x00455220)
|
||||
#define S_Sound_CalculateSampleVolume ((int32_t __cdecl (*)(DWORD volume))0x00455270)
|
||||
#define S_Sound_CalculateSamplePan ((int32_t __cdecl (*)(__int16 pan))0x004552A0)
|
||||
#define S_Sound_CalculateSamplePan ((int32_t __cdecl (*)(int16_t pan))0x004552A0)
|
||||
#define S_SoundPlaySampleLooped ((int32_t __cdecl (*)(int32_t channel, UINT16 volume, DWORD pitch, int32_t pan))0x004552D0)
|
||||
#define S_SoundSetPanAndVolume ((void __cdecl (*)(int32_t channel, int32_t pan, UINT16 volume))0x00455320)
|
||||
#define S_SoundSetPitch ((void __cdecl (*)(int32_t channel, DWORD pitch))0x00455360)
|
||||
@ -1084,7 +1083,7 @@
|
||||
#define S_SoundSampleIsPlaying ((BOOL __cdecl (*)(int32_t channel))0x004553C0)
|
||||
#define CD_Init ((bool __cdecl (*)(void))0x004553E0)
|
||||
#define CD_Cleanup ((void __cdecl (*)(void))0x00455460)
|
||||
#define S_CDPlay ((void __cdecl (*)(__int16 trackID, BOOL isLooped))0x00455500)
|
||||
#define S_CDPlay ((void __cdecl (*)(int16_t trackID, BOOL isLooped))0x00455500)
|
||||
#define S_CDStop ((void __cdecl (*)(void))0x00455570)
|
||||
#define StartSyncedAudio ((BOOL __cdecl (*)(int32_t trackID))0x004555B0)
|
||||
#define S_CDGetLoc ((DWORD __cdecl (*)(void))0x00455640)
|
||||
|
@ -7,6 +7,8 @@
|
||||
#include <stdint.h>
|
||||
#include <windows.h>
|
||||
|
||||
#pragma pack(push, 1)
|
||||
|
||||
typedef DDSURFACEDESC DDSDESC, *LPDDSDESC;
|
||||
typedef LPDIRECTDRAWSURFACE3 LPDDS;
|
||||
typedef D3DTEXTUREHANDLE HWR_TEXHANDLE;
|
||||
@ -710,3 +712,121 @@ typedef struct CREATURE_INFO {
|
||||
struct PHD_VECTOR target;
|
||||
struct ITEM_INFO *enemy;
|
||||
} CREATURE_INFO;
|
||||
|
||||
typedef enum CAMERA_TYPE {
|
||||
CAM_CHASE = 0,
|
||||
CAM_FIXED = 1,
|
||||
CAM_LOOK = 2,
|
||||
CAM_COMBAT = 3,
|
||||
CAM_CINEMATIC = 4,
|
||||
CAM_HEAVY = 5,
|
||||
} CAMERA_TYPE;
|
||||
|
||||
typedef struct GAME_VECTOR {
|
||||
int32_t x;
|
||||
int32_t y;
|
||||
int32_t z;
|
||||
int16_t room_num;
|
||||
int16_t box_num;
|
||||
} GAME_VECTOR;
|
||||
|
||||
typedef struct CAMERA_INFO {
|
||||
struct GAME_VECTOR pos;
|
||||
struct GAME_VECTOR target;
|
||||
enum CAMERA_TYPE type;
|
||||
int32_t shift;
|
||||
uint32_t flags;
|
||||
int32_t fixed_camera;
|
||||
int32_t num_frames;
|
||||
int32_t bounce;
|
||||
int32_t underwater;
|
||||
int32_t target_distance;
|
||||
int32_t target_square;
|
||||
int16_t target_angle;
|
||||
int16_t actual_angle;
|
||||
int16_t target_elevation;
|
||||
int16_t box;
|
||||
int16_t num;
|
||||
int16_t last;
|
||||
int16_t timer;
|
||||
int16_t speed;
|
||||
struct ITEM_INFO *item;
|
||||
struct ITEM_INFO *last_item;
|
||||
struct OBJECT_VECTOR *fixed;
|
||||
bool is_lara_mic;
|
||||
struct PHD_VECTOR mic_pos;
|
||||
} CAMERA_INFO;
|
||||
|
||||
typedef struct LARA_ARM {
|
||||
int16_t *frame_base;
|
||||
int16_t frame_num;
|
||||
int16_t anim_num;
|
||||
int16_t lock;
|
||||
int16_t y_rot;
|
||||
int16_t x_rot;
|
||||
int16_t z_rot;
|
||||
int16_t flash_gun;
|
||||
} LARA_ARM;
|
||||
|
||||
typedef struct AMMO_INFO {
|
||||
int32_t ammo;
|
||||
} AMMO_INFO;
|
||||
|
||||
typedef struct LARA_INFO {
|
||||
int16_t item_num;
|
||||
int16_t gun_status;
|
||||
int16_t gun_type;
|
||||
int16_t request_gun_type;
|
||||
int16_t last_gun_type;
|
||||
int16_t calc_fallspeed;
|
||||
int16_t water_status;
|
||||
int16_t climb_status;
|
||||
int16_t pose_count;
|
||||
int16_t hit_frame;
|
||||
int16_t hit_direction;
|
||||
int16_t air;
|
||||
int16_t dive_count;
|
||||
int16_t death_count;
|
||||
int16_t current_active;
|
||||
int16_t spaz_effect_count;
|
||||
int16_t flare_age;
|
||||
int16_t skidoo;
|
||||
int16_t weapon_item;
|
||||
int16_t back_gun;
|
||||
int16_t flare_frame;
|
||||
uint16_t flare_control_left : 1;
|
||||
uint16_t flare_control_right : 1;
|
||||
uint16_t extra_anim : 1;
|
||||
uint16_t look : 1;
|
||||
uint16_t burn : 1;
|
||||
uint16_t keep_ducked : 1;
|
||||
uint16_t can_monkey_swing : 1;
|
||||
uint16_t pad : 9;
|
||||
int32_t water_surface_dist;
|
||||
struct PHD_VECTOR last_pos;
|
||||
struct FX_INFO *spaz_effect;
|
||||
uint32_t mesh_effects;
|
||||
int16_t *mesh_ptrs[15];
|
||||
struct ITEM_INFO *target;
|
||||
int16_t target_angles[2];
|
||||
int16_t turn_rate;
|
||||
int16_t move_angle;
|
||||
int16_t head_y_rot;
|
||||
int16_t head_x_rot;
|
||||
int16_t head_z_rot;
|
||||
int16_t torso_y_rot;
|
||||
int16_t torso_x_rot;
|
||||
int16_t torso_z_rot;
|
||||
struct LARA_ARM left_arm;
|
||||
struct LARA_ARM right_arm;
|
||||
struct AMMO_INFO pistol_ammo;
|
||||
struct AMMO_INFO magnum_ammo;
|
||||
struct AMMO_INFO uzi_ammo;
|
||||
struct AMMO_INFO shotgun_ammo;
|
||||
struct AMMO_INFO harpoon_ammo;
|
||||
struct AMMO_INFO grenade_ammo;
|
||||
struct AMMO_INFO m16_ammo;
|
||||
struct CREATURE_INFO *creature;
|
||||
} LARA_INFO;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
@ -31,6 +31,11 @@
|
||||
#define g_PhdVBuf ARRAY_(0x004BF3E0, struct PHD_VBUF, [1500])
|
||||
#define g_FltWinRight VAR_U_(0x004D6B60, float)
|
||||
#define g_PhdWinRight VAR_U_(0x004D6BF8, int32_t)
|
||||
#define g_IsChunkyCamera VAR_U_(0x004D778C, int32_t)
|
||||
#define g_ErrorMessage ARRAY_(0x0051BD20, char, [128])
|
||||
#define g_Lara VAR_U_(0x005206E0, struct LARA_INFO)
|
||||
#define g_LaraItem VAR_U_(0x005207BC, struct ITEM_INFO *)
|
||||
#define g_Items ARRAY_(0x005262F0, struct ITEM_INFO, [])
|
||||
#define g_Camera VAR_U_(0x00526320, struct CAMERA_INFO)
|
||||
#define g_Boxes VAR_U_(0x005263CC, struct BOX_INFO *)
|
||||
// clang-format on
|
@ -1,11 +1,20 @@
|
||||
#include "inject_exec.h"
|
||||
|
||||
#include "game/camera.h"
|
||||
#include "game/math.h"
|
||||
#include "game/matrix.h"
|
||||
#include "game/shell.h"
|
||||
#include "inject_util.h"
|
||||
|
||||
static void Inject_Camera(void);
|
||||
static void Inject_Math(void);
|
||||
static void Inject_Matrix(void);
|
||||
static void Inject_Shell(void);
|
||||
|
||||
static void Inject_Camera(void)
|
||||
{
|
||||
INJECT(0x004105A0, Camera_Initialise);
|
||||
}
|
||||
|
||||
static void Inject_Matrix(void)
|
||||
{
|
||||
@ -34,6 +43,7 @@ static void Inject_Shell(void)
|
||||
|
||||
void Inject_Exec(void)
|
||||
{
|
||||
Inject_Camera();
|
||||
Inject_Matrix();
|
||||
Inject_Math();
|
||||
Inject_Shell();
|
||||
|
Loading…
x
Reference in New Issue
Block a user