diff --git a/docs/progress.txt b/docs/progress.txt index 2ddd8ba5..a1c58a4e 100644 --- a/docs/progress.txt +++ b/docs/progress.txt @@ -1996,1642 +1996,1642 @@ typedef struct __unaligned { # * to do, called by TR2X # x unused # + fully decompiled -# Offset Size Flags Declaration +# Offset Size Flags Declaration # 3dsystem/3d_gen.c -00401000 000001D0 + void __cdecl Matrix_GenerateW2V(PHD_3DPOS *viewpos); -004011D0 00000072 + void __cdecl Matrix_LookAt(int32_t xsrc, int32_t ysrc, int32_t zsrc, int32_t xtar, int32_t ytar, int32_t ztar, int16_t roll); -00401250 00000078 + void __cdecl Math_GetVectorAngles(int32_t x, int32_t y, int32_t z, int16_t *dest); -004012D0 000000AA + void __cdecl Matrix_RotX(int16_t rx); -00401380 000000A8 + void __cdecl Matrix_RotY(int16_t ry); -00401430 000000A8 + void __cdecl Matrix_RotZ(int16_t rz); -004014E0 000001DC + void __cdecl Matrix_RotYXZ(int16_t ry, int16_t rx, int16_t rz); -004016C0 000001E7 + void __cdecl Matrix_RotYXZpack(uint32_t rpack); -004018B0 000000AB + bool __cdecl Matrix_TranslateRel(int32_t x, int32_t y, int32_t z); -00401960 0000007A + void __cdecl Matrix_TranslateAbs(int32_t x, int32_t y, int32_t z); -004019E0 000000F3 + void __cdecl Output_InsertPolygons(const int16_t *obj_ptr, int32_t clip); -00401AE0 000000EA + void __cdecl Output_InsertRoom(const int16_t *obj_ptr, int32_t is_outside); -00401BD0 00000032 + const int16_t *__cdecl Output_CalcSkyboxLight(const int16_t *obj_ptr); -00401C10 00000134 + void __cdecl Output_InsertSkybox(const int16_t *obj_ptr); -00401D50 00000001 x void __cdecl Output_InsertInventoryBackground(const int16_t *obj_ptr); -00401D60 000001D5 + const int16_t *__cdecl Output_CalcObjectVertices(const int16_t *obj_ptr); -00401F40 0000016D + const int16_t *__cdecl Output_CalcVerticeLight(const int16_t *obj_ptr); -004020B0 0000027D + const int16_t *__cdecl Output_CalcRoomVertices(const int16_t *obj_ptr, int32_t far_clip); -00402330 000000C7 + void __cdecl Output_RotateLight(int16_t pitch, int16_t yaw); -00402400 00000039 + void __cdecl Output_InitPolyList(void); -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 Output_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 Output_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); +0x00401000 0x01D0 + void __cdecl Matrix_GenerateW2V(PHD_3DPOS *viewpos); +0x004011D0 0x0072 + void __cdecl Matrix_LookAt(int32_t xsrc, int32_t ysrc, int32_t zsrc, int32_t xtar, int32_t ytar, int32_t ztar, int16_t roll); +0x00401250 0x0078 + void __cdecl Math_GetVectorAngles(int32_t x, int32_t y, int32_t z, int16_t *dest); +0x004012D0 0x00AA + void __cdecl Matrix_RotX(int16_t rx); +0x00401380 0x00A8 + void __cdecl Matrix_RotY(int16_t ry); +0x00401430 0x00A8 + void __cdecl Matrix_RotZ(int16_t rz); +0x004014E0 0x01DC + void __cdecl Matrix_RotYXZ(int16_t ry, int16_t rx, int16_t rz); +0x004016C0 0x01E7 + void __cdecl Matrix_RotYXZpack(uint32_t rpack); +0x004018B0 0x00AB + bool __cdecl Matrix_TranslateRel(int32_t x, int32_t y, int32_t z); +0x00401960 0x007A + void __cdecl Matrix_TranslateAbs(int32_t x, int32_t y, int32_t z); +0x004019E0 0x00F3 + void __cdecl Output_InsertPolygons(const int16_t *obj_ptr, int32_t clip); +0x00401AE0 0x00EA + void __cdecl Output_InsertRoom(const int16_t *obj_ptr, int32_t is_outside); +0x00401BD0 0x0032 + const int16_t *__cdecl Output_CalcSkyboxLight(const int16_t *obj_ptr); +0x00401C10 0x0134 + void __cdecl Output_InsertSkybox(const int16_t *obj_ptr); +0x00401D50 0x0001 x void __cdecl Output_InsertInventoryBackground(const int16_t *obj_ptr); +0x00401D60 0x01D5 + const int16_t *__cdecl Output_CalcObjectVertices(const int16_t *obj_ptr); +0x00401F40 0x016D + const int16_t *__cdecl Output_CalcVerticeLight(const int16_t *obj_ptr); +0x004020B0 0x027D + const int16_t *__cdecl Output_CalcRoomVertices(const int16_t *obj_ptr, int32_t far_clip); +0x00402330 0x00C7 + void __cdecl Output_RotateLight(int16_t pitch, int16_t yaw); +0x00402400 0x0039 + void __cdecl Output_InitPolyList(void); +0x00402430 0x0033 + void __cdecl Output_SortPolyList(void); +0x00402470 0x00C5 + void __cdecl Output_QuickSort(int32_t left, int32_t right); +0x00402540 0x0036 + void __cdecl Output_PrintPolyList(uint8_t *surface_ptr); +0x00402580 0x00A1 + void __cdecl Output_AlterFOV(int16_t fov); +0x00402690 0x0095 + void __cdecl Output_SetNearZ(int32_t near_z); +0x004026E0 0x006B + void __cdecl Output_SetFarZ(int32_t far_z); +0x00402700 0x0266 + void __cdecl Output_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); # 3dsystem/3d_out.c -00402970 0000019F + void __cdecl Output_DrawPolyLine(const int16_t *obj_ptr); -00402B10 00000035 + void __cdecl Output_DrawPolyFlat(const int16_t *obj_ptr); -00402B50 00000035 + void __cdecl Output_DrawPolyTrans(const int16_t *obj_ptr); -00402B90 00000035 + void __cdecl Output_DrawPolyGouraud(const int16_t *obj_ptr); -00402BD0 0000003C + void __cdecl Output_DrawPolyGTMap(const int16_t *obj_ptr); -00402C10 0000003C + void __cdecl Output_DrawPolyWGTMap(const int16_t *obj_ptr); -00402C50 000000D2 + int32_t __cdecl Output_XGenX(const int16_t *obj_ptr); -00402D30 00000146 + int32_t __cdecl Output_XGenXG(const int16_t *obj_ptr); -00402E80 00000219 + int32_t __cdecl Output_XGenXGUV(const int16_t *obj_ptr); -004030A0 00000284 + int32_t __cdecl Output_XGenXGUVPerspFP(const int16_t *obj_ptr); -00403330 00000FC6 + void __cdecl Output_GTMapPersp32FP(int32_t y1, int32_t y2, uint8_t *tex_page); -00404300 000014C4 + void __cdecl Output_WGTMapPersp32FP(int32_t y1, int32_t y2, uint8_t *tex_page); -004057D0 00000037 + void __cdecl Output_DrawPolyGTMapPersp(const int16_t *obj_ptr); -00405810 00000037 + void __cdecl Output_DrawPolyWGTMapPersp(const int16_t *obj_ptr); +0x00402970 0x019F + void __cdecl Output_DrawPolyLine(const int16_t *obj_ptr); +0x00402B10 0x0035 + void __cdecl Output_DrawPolyFlat(const int16_t *obj_ptr); +0x00402B50 0x0035 + void __cdecl Output_DrawPolyTrans(const int16_t *obj_ptr); +0x00402B90 0x0035 + void __cdecl Output_DrawPolyGouraud(const int16_t *obj_ptr); +0x00402BD0 0x003C + void __cdecl Output_DrawPolyGTMap(const int16_t *obj_ptr); +0x00402C10 0x003C + void __cdecl Output_DrawPolyWGTMap(const int16_t *obj_ptr); +0x00402C50 0x00D2 + int32_t __cdecl Output_XGenX(const int16_t *obj_ptr); +0x00402D30 0x0146 + int32_t __cdecl Output_XGenXG(const int16_t *obj_ptr); +0x00402E80 0x0219 + int32_t __cdecl Output_XGenXGUV(const int16_t *obj_ptr); +0x004030A0 0x0284 + int32_t __cdecl Output_XGenXGUVPerspFP(const int16_t *obj_ptr); +0x00403330 0x0FC6 + void __cdecl Output_GTMapPersp32FP(int32_t y1, int32_t y2, uint8_t *tex_page); +0x00404300 0x14C4 + void __cdecl Output_WGTMapPersp32FP(int32_t y1, int32_t y2, uint8_t *tex_page); +0x004057D0 0x0037 + void __cdecl Output_DrawPolyGTMapPersp(const int16_t *obj_ptr); +0x00405810 0x0037 + void __cdecl Output_DrawPolyWGTMapPersp(const int16_t *obj_ptr); # 3dsystem/3dinsert.c -00405850 0000006C + int32_t __cdecl Output_VisibleZClip(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2); -004058C0 00000140 + int32_t __cdecl Output_ZedClipper(int32_t vtx_count, POINT_INFO *pts, VERTEX_INFO *vtx); -00405A00 00000511 + int32_t __cdecl Output_XYGUVClipper(int32_t vtx_count, VERTEX_INFO *vtx); -00405F20 00000A5C + const int16_t *__cdecl Output_InsertObjectGT4(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -00406980 00000872 + const int16_t *__cdecl Output_InsertObjectGT3(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -00407200 00000422 + int32_t __cdecl Output_XYGClipper(int32_t vtx_count, VERTEX_INFO *vtx); -00407630 000003D1 + const int16_t *__cdecl Output_InsertObjectG4(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -00407A10 0000031B + const int16_t *__cdecl Output_InsertObjectG3(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -00407D30 000002D0 + int32_t __cdecl Output_XYClipper(int32_t vtx_count, VERTEX_INFO *vtx); -00408000 000004A4 + void __cdecl Output_InsertTrans8(const PHD_VBUF *vbuf, int16_t shade); -004084B0 000000D3 + void __cdecl Output_InsertTransQuad(int32_t x, int32_t y, int32_t width, int32_t height, int32_t z); -00408590 000000CB + void __cdecl Output_InsertFlatRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); -00408660 000000B5 + void __cdecl Output_InsertLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); -00408720 00000642 + void __cdecl Output_InsertGT3_ZBuffered(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_TEXTURE *texture, const PHD_UV *uv0, const PHD_UV *uv1, const PHD_UV *uv2); -00408D70 00000140 + void __cdecl Output_DrawClippedPoly_Textured(int32_t vtx_count); -00408EB0 00000444 + void __cdecl Output_InsertGT4_ZBuffered(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_VBUF *vtx3, const PHD_TEXTURE *texture); -00409300 00000091 + const int16_t *__cdecl Output_InsertObjectGT4_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -004093A0 000000AA + const int16_t *__cdecl Output_InsertObjectGT3_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -00409450 0000039C + const int16_t *__cdecl Output_InsertObjectG4_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -004097F0 000000F7 + void __cdecl Output_DrawPoly_Gouraud(int32_t vtx_count, int32_t red, int32_t green, int32_t blue); -004098F0 000002D3 + const int16_t *__cdecl Output_InsertObjectG3_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -00409BD0 000001C9 + void __cdecl Output_InsertFlatRect_ZBuffered(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); -00409DA0 00000133 + void __cdecl Output_InsertLine_ZBuffered(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); -00409EE0 00000706 + void __cdecl Output_InsertGT3_Sorted(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_TEXTURE *texture, const PHD_UV *uv0, const PHD_UV *uv1, const PHD_UV *uv2, SORT_TYPE sort_type); -0040A5F0 000001AC + void __cdecl Output_InsertClippedPoly_Textured(int32_t vtx_count, float z, int16_t poly_type, int16_t tex_page); -0040A7A0 000004D7 + void __cdecl Output_InsertGT4_Sorted(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_VBUF *vtx3, const PHD_TEXTURE *texture, SORT_TYPE sort_type); -0040AC80 0000008C + const int16_t *__cdecl Output_InsertObjectGT4_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -0040AD10 0000009F + const int16_t *__cdecl Output_InsertObjectGT3_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -0040ADB0 0000043B + const int16_t *__cdecl Output_InsertObjectG4_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -0040B1F0 00000175 + void __cdecl Output_InsertPoly_Gouraud(int32_t vtx_count, float z, int32_t red, int32_t green, int32_t blue, int16_t poly_type); -0040B370 00000343 + const int16_t *__cdecl Output_InsertObjectG3_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); -0040B6C0 00000347 + void __cdecl Output_InsertSprite_Sorted(int32_t z, int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t sprite_idx, int16_t shade); -0040BA10 0000017F + void __cdecl Output_InsertFlatRect_Sorted(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); -0040BB90 0000012B + void __cdecl Output_InsertLine_Sorted(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); -0040BCC0 00000195 + void __cdecl Output_InsertTrans8_Sorted(const PHD_VBUF *vbuf, int16_t shade); -0040BE60 0000013D + void __cdecl Output_InsertTransQuad_Sorted(int32_t x, int32_t y, int32_t width, int32_t height, int32_t z); -0040BFA0 000000A7 + void __cdecl Output_InsertSprite(int32_t z, int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t sprite_idx, int16_t shade); +0x00405850 0x006C + int32_t __cdecl Output_VisibleZClip(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2); +0x004058C0 0x0140 + int32_t __cdecl Output_ZedClipper(int32_t vtx_count, POINT_INFO *pts, VERTEX_INFO *vtx); +0x00405A00 0x0511 + int32_t __cdecl Output_XYGUVClipper(int32_t vtx_count, VERTEX_INFO *vtx); +0x00405F20 0x0A5C + const int16_t *__cdecl Output_InsertObjectGT4(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x00406980 0x0872 + const int16_t *__cdecl Output_InsertObjectGT3(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x00407200 0x0422 + int32_t __cdecl Output_XYGClipper(int32_t vtx_count, VERTEX_INFO *vtx); +0x00407630 0x03D1 + const int16_t *__cdecl Output_InsertObjectG4(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x00407A10 0x031B + const int16_t *__cdecl Output_InsertObjectG3(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x00407D30 0x02D0 + int32_t __cdecl Output_XYClipper(int32_t vtx_count, VERTEX_INFO *vtx); +0x00408000 0x04A4 + void __cdecl Output_InsertTrans8(const PHD_VBUF *vbuf, int16_t shade); +0x004084B0 0x00D3 + void __cdecl Output_InsertTransQuad(int32_t x, int32_t y, int32_t width, int32_t height, int32_t z); +0x00408590 0x00CB + void __cdecl Output_InsertFlatRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); +0x00408660 0x00B5 + void __cdecl Output_InsertLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); +0x00408720 0x0642 + void __cdecl Output_InsertGT3_ZBuffered(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_TEXTURE *texture, const PHD_UV *uv0, const PHD_UV *uv1, const PHD_UV *uv2); +0x00408D70 0x0140 + void __cdecl Output_DrawClippedPoly_Textured(int32_t vtx_count); +0x00408EB0 0x0444 + void __cdecl Output_InsertGT4_ZBuffered(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_VBUF *vtx3, const PHD_TEXTURE *texture); +0x00409300 0x0091 + const int16_t *__cdecl Output_InsertObjectGT4_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x004093A0 0x00AA + const int16_t *__cdecl Output_InsertObjectGT3_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x00409450 0x039C + const int16_t *__cdecl Output_InsertObjectG4_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x004097F0 0x00F7 + void __cdecl Output_DrawPoly_Gouraud(int32_t vtx_count, int32_t red, int32_t green, int32_t blue); +0x004098F0 0x02D3 + const int16_t *__cdecl Output_InsertObjectG3_ZBuffered(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x00409BD0 0x01C9 + void __cdecl Output_InsertFlatRect_ZBuffered(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); +0x00409DA0 0x0133 + void __cdecl Output_InsertLine_ZBuffered(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); +0x00409EE0 0x0706 + void __cdecl Output_InsertGT3_Sorted(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_TEXTURE *texture, const PHD_UV *uv0, const PHD_UV *uv1, const PHD_UV *uv2, SORT_TYPE sort_type); +0x0040A5F0 0x01AC + void __cdecl Output_InsertClippedPoly_Textured(int32_t vtx_count, float z, int16_t poly_type, int16_t tex_page); +0x0040A7A0 0x04D7 + void __cdecl Output_InsertGT4_Sorted(const PHD_VBUF *vtx0, const PHD_VBUF *vtx1, const PHD_VBUF *vtx2, const PHD_VBUF *vtx3, const PHD_TEXTURE *texture, SORT_TYPE sort_type); +0x0040AC80 0x008C + const int16_t *__cdecl Output_InsertObjectGT4_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x0040AD10 0x009F + const int16_t *__cdecl Output_InsertObjectGT3_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x0040ADB0 0x043B + const int16_t *__cdecl Output_InsertObjectG4_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x0040B1F0 0x0175 + void __cdecl Output_InsertPoly_Gouraud(int32_t vtx_count, float z, int32_t red, int32_t green, int32_t blue, int16_t poly_type); +0x0040B370 0x0343 + const int16_t *__cdecl Output_InsertObjectG3_Sorted(const int16_t *obj_ptr, int32_t num, SORT_TYPE sort_type); +0x0040B6C0 0x0347 + void __cdecl Output_InsertSprite_Sorted(int32_t z, int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t sprite_idx, int16_t shade); +0x0040BA10 0x017F + void __cdecl Output_InsertFlatRect_Sorted(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); +0x0040BB90 0x012B + void __cdecl Output_InsertLine_Sorted(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); +0x0040BCC0 0x0195 + void __cdecl Output_InsertTrans8_Sorted(const PHD_VBUF *vbuf, int16_t shade); +0x0040BE60 0x013D + void __cdecl Output_InsertTransQuad_Sorted(int32_t x, int32_t y, int32_t width, int32_t height, int32_t z); +0x0040BFA0 0x00A7 + void __cdecl Output_InsertSprite(int32_t z, int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t sprite_idx, int16_t shade); # 3dsystem/scalespr.c -0040C050 000002C7 + void __cdecl Output_DrawSprite(uint32_t flags, int32_t x, int32_t y, int32_t z, int16_t sprite_idx, int16_t shade, int16_t scale); -0040C320 00000085 + void __cdecl Output_DrawPickup(int32_t sx, int32_t sy, int32_t scale, int16_t sprite_idx, int16_t shade); -0040C3B0 00000152 + const int16_t *__cdecl Output_InsertRoomSprite(const int16_t *obj_ptr, int32_t vtx_count); -0040C510 00000096 + void __cdecl Output_DrawScreenSprite2D(int32_t sx, int32_t sy, int32_t sz, int32_t scale_h, int32_t scale_v, int16_t sprite_idx, int16_t shade, uint16_t flags); -0040C5B0 0000009D + void __cdecl Output_DrawScreenSprite(int32_t sx, int32_t sy, int32_t sz, int32_t scale_h, int32_t scale_v, int16_t sprite_idx, int16_t shade, uint16_t flags); -0040C650 00000223 + void __cdecl Output_DrawScaledSpriteC(const int16_t *obj_ptr); +0x0040C050 0x02C7 + void __cdecl Output_DrawSprite(uint32_t flags, int32_t x, int32_t y, int32_t z, int16_t sprite_idx, int16_t shade, int16_t scale); +0x0040C320 0x0085 + void __cdecl Output_DrawPickup(int32_t sx, int32_t sy, int32_t scale, int16_t sprite_idx, int16_t shade); +0x0040C3B0 0x0152 + const int16_t *__cdecl Output_InsertRoomSprite(const int16_t *obj_ptr, int32_t vtx_count); +0x0040C510 0x0096 + void __cdecl Output_DrawScreenSprite2D(int32_t sx, int32_t sy, int32_t sz, int32_t scale_h, int32_t scale_v, int16_t sprite_idx, int16_t shade, uint16_t flags); +0x0040C5B0 0x009D + void __cdecl Output_DrawScreenSprite(int32_t sx, int32_t sy, int32_t sz, int32_t scale_h, int32_t scale_v, int16_t sprite_idx, int16_t shade, uint16_t flags); +0x0040C650 0x0223 + void __cdecl Output_DrawScaledSpriteC(const int16_t *obj_ptr); # game/bird.c -0040C880 00000089 + void __cdecl Bird_Initialise(int16_t item_num); -0040C910 00000200 + void __cdecl Bird_Control(int16_t item_num); +0x0040C880 0x0089 + void __cdecl Bird_Initialise(int16_t item_num); +0x0040C910 0x0200 + void __cdecl Bird_Control(int16_t item_num); # game/boat.c -0040CB30 0000003C - void __cdecl Boat_Initialise(int16_t item_num); -0040CB70 00000170 - int32_t __cdecl Boat_CheckGeton(int16_t item_num, COLL_INFO *coll); -0040CCE0 0000015E - void __cdecl Boat_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0040CE40 000000F8 - int32_t __cdecl Boat_TestWaterHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); -0040CF40 000001C1 - void __cdecl Boat_DoShift(int32_t boat_num); -0040D110 00000174 - void __cdecl Boat_DoWakeEffect(ITEM_INFO *boat); -0040D290 0000004B - int32_t __cdecl Boat_DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); -0040D2E0 000004DD - int32_t __cdecl Boat_Dynamics(int16_t boat_num); -0040D7C0 00000187 - int32_t __cdecl Boat_UserControl(ITEM_INFO *boat); -0040D950 00000169 - void __cdecl Boat_Animation(ITEM_INFO *boat, int32_t collide); -0040DAC0 0000062A - void __cdecl Boat_Control(int16_t item_num); -0040E0F0 000000B3 - void __cdecl Gondola_Control(int16_t item_num); +0x0040CB30 0x003C - void __cdecl Boat_Initialise(int16_t item_num); +0x0040CB70 0x0170 - int32_t __cdecl Boat_CheckGeton(int16_t item_num, COLL_INFO *coll); +0x0040CCE0 0x015E - void __cdecl Boat_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x0040CE40 0x00F8 - int32_t __cdecl Boat_TestWaterHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); +0x0040CF40 0x01C1 - void __cdecl Boat_DoShift(int32_t boat_num); +0x0040D110 0x0174 - void __cdecl Boat_DoWakeEffect(ITEM_INFO *boat); +0x0040D290 0x004B - int32_t __cdecl Boat_DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); +0x0040D2E0 0x04DD - int32_t __cdecl Boat_Dynamics(int16_t boat_num); +0x0040D7C0 0x0187 - int32_t __cdecl Boat_UserControl(ITEM_INFO *boat); +0x0040D950 0x0169 - void __cdecl Boat_Animation(ITEM_INFO *boat, int32_t collide); +0x0040DAC0 0x062A - void __cdecl Boat_Control(int16_t item_num); +0x0040E0F0 0x00B3 - void __cdecl Gondola_Control(int16_t item_num); # game/box.c -0040E1B0 0000002F + void __cdecl Creature_Initialise(int16_t item_num); -0040E1E0 00000047 + int32_t __cdecl Creature_Activate(int16_t item_num); -0040E230 00000242 + void __cdecl Creature_AIInfo(ITEM_INFO *item, AI_INFO *info); -0040E490 000001F3 + int32_t __cdecl Box_SearchLOT(LOT_INFO *lot, int32_t expansion); -0040E690 0000006F + int32_t __cdecl Box_UpdateLOT(LOT_INFO *lot, int32_t expansion); -0040E700 00000095 + void __cdecl Box_TargetBox(LOT_INFO *lot, int16_t box_num); -0040E7A0 000000F2 + int32_t __cdecl Box_StalkBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); -0040E8A0 000000A4 + int32_t __cdecl Box_EscapeBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); -0040E950 000000A7 + int32_t __cdecl Box_ValidBox(const ITEM_INFO *item, int16_t zone_num, int16_t box_num); -0040EA00 0000043F + void __cdecl Creature_Mood(ITEM_INFO *item, AI_INFO *info, int32_t violent); -0040EE70 00000459 + TARGET_TYPE __cdecl Box_CalculateTarget(XYZ_32 *target, ITEM_INFO *item, LOT_INFO *lot); -0040F2D0 000000F8 + int32_t __cdecl Creature_CheckBaddieOverlap(int16_t item_num); -0040F3D0 0000008B + int32_t __cdecl Box_BadFloor(int32_t x, int32_t y, int32_t z, int32_t box_height, int32_t next_height, int16_t room_num, LOT_INFO *lot); -0040F460 000000B8 + void __cdecl Creature_Die(int16_t item_num, int32_t explode); -0040F520 000008CC + int32_t __cdecl Creature_Animate(int16_t item_num, int16_t angle, int16_t tilt); -0040FDF0 000000D5 + int16_t __cdecl Creature_Turn(ITEM_INFO *item, int16_t maximum_turn); -0040FED0 00000035 + void __cdecl Creature_Tilt(ITEM_INFO *item, int16_t angle); -0040FF10 00000049 + void __cdecl Creature_Head(ITEM_INFO *item, int16_t required); -0040FF60 0000004E + void __cdecl Creature_Neck(ITEM_INFO *item, int16_t required); -0040FFB0 000000A8 + void __cdecl Creature_Float(int16_t item_num); -00410060 00000050 + void __cdecl Creature_Underwater(ITEM_INFO *item, int32_t depth); -004100B0 0000005C + int16_t __cdecl Creature_Effect(ITEM_INFO *item, BITE_INFO *bite, int16_t (*__cdecl spawn)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); -00410110 00000131 + int32_t __cdecl Creature_Vault(int16_t item_num, int16_t angle, int32_t vault, int32_t shift); -00410250 0000016F + void __cdecl Creature_Kill(ITEM_INFO *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); -004103C0 000001DB + void __cdecl Creature_GetBaddieTarget(int16_t item_num, int32_t goody); +0x0040E1B0 0x002F + void __cdecl Creature_Initialise(int16_t item_num); +0x0040E1E0 0x0047 + int32_t __cdecl Creature_Activate(int16_t item_num); +0x0040E230 0x0242 + void __cdecl Creature_AIInfo(ITEM_INFO *item, AI_INFO *info); +0x0040E490 0x01F3 + int32_t __cdecl Box_SearchLOT(LOT_INFO *lot, int32_t expansion); +0x0040E690 0x006F + int32_t __cdecl Box_UpdateLOT(LOT_INFO *lot, int32_t expansion); +0x0040E700 0x0095 + void __cdecl Box_TargetBox(LOT_INFO *lot, int16_t box_num); +0x0040E7A0 0x00F2 + int32_t __cdecl Box_StalkBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); +0x0040E8A0 0x00A4 + int32_t __cdecl Box_EscapeBox(const ITEM_INFO *item, const ITEM_INFO *enemy, int16_t box_num); +0x0040E950 0x00A7 + int32_t __cdecl Box_ValidBox(const ITEM_INFO *item, int16_t zone_num, int16_t box_num); +0x0040EA00 0x043F + void __cdecl Creature_Mood(ITEM_INFO *item, AI_INFO *info, int32_t violent); +0x0040EE70 0x0459 + TARGET_TYPE __cdecl Box_CalculateTarget(XYZ_32 *target, ITEM_INFO *item, LOT_INFO *lot); +0x0040F2D0 0x00F8 + int32_t __cdecl Creature_CheckBaddieOverlap(int16_t item_num); +0x0040F3D0 0x008B + int32_t __cdecl Box_BadFloor(int32_t x, int32_t y, int32_t z, int32_t box_height, int32_t next_height, int16_t room_num, LOT_INFO *lot); +0x0040F460 0x00B8 + void __cdecl Creature_Die(int16_t item_num, int32_t explode); +0x0040F520 0x08CC + int32_t __cdecl Creature_Animate(int16_t item_num, int16_t angle, int16_t tilt); +0x0040FDF0 0x00D5 + int16_t __cdecl Creature_Turn(ITEM_INFO *item, int16_t maximum_turn); +0x0040FED0 0x0035 + void __cdecl Creature_Tilt(ITEM_INFO *item, int16_t angle); +0x0040FF10 0x0049 + void __cdecl Creature_Head(ITEM_INFO *item, int16_t required); +0x0040FF60 0x004E + void __cdecl Creature_Neck(ITEM_INFO *item, int16_t required); +0x0040FFB0 0x00A8 + void __cdecl Creature_Float(int16_t item_num); +0x00410060 0x0050 + void __cdecl Creature_Underwater(ITEM_INFO *item, int32_t depth); +0x004100B0 0x005C + int16_t __cdecl Creature_Effect(ITEM_INFO *item, BITE_INFO *bite, int16_t (*__cdecl spawn)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num)); +0x00410110 0x0131 + int32_t __cdecl Creature_Vault(int16_t item_num, int16_t angle, int32_t vault, int32_t shift); +0x00410250 0x016F + void __cdecl Creature_Kill(ITEM_INFO *item, int32_t kill_anim, int32_t kill_state, int32_t lara_kill_state); +0x004103C0 0x01DB + void __cdecl Creature_GetBaddieTarget(int16_t item_num, int32_t goody); # game/camera.c -004105A0 000000B0 + void __cdecl Camera_Initialise(void); -00410650 00000372 + void __cdecl Camera_Move(const GAME_VECTOR *target, 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); -00410C10 00000050 + const FLOOR_INFO *__cdecl Camera_GoodPosition(int32_t x, int32_t y, int32_t z, int16_t room_num); -00410C60 00000781 + void __cdecl Camera_SmartShift(GAME_VECTOR *target, void (*__cdecl 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)); -004113F0 000000ED + void __cdecl Camera_Chase(const ITEM_INFO *item); -004114E0 0000019E + int32_t __cdecl Camera_ShiftClamp(GAME_VECTOR *pos, int32_t clamp); -00411680 0000018E + void __cdecl Camera_Combat(const ITEM_INFO *item); -00411810 000001E2 + void __cdecl Camera_Look(const ITEM_INFO *item); -00411A00 00000099 + void __cdecl Camera_Fixed(void); -00411AA0 000004A9 + void __cdecl Camera_Update(void); +0x004105A0 0x00B0 + void __cdecl Camera_Initialise(void); +0x00410650 0x0372 + void __cdecl Camera_Move(const GAME_VECTOR *target, int32_t speed); +0x004109D0 0x00D7 + 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); +0x00410AB0 0x0154 + 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); +0x00410C10 0x0050 + const FLOOR_INFO *__cdecl Camera_GoodPosition(int32_t x, int32_t y, int32_t z, int16_t room_num); +0x00410C60 0x0781 + void __cdecl Camera_SmartShift(GAME_VECTOR *target, void (*__cdecl 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)); +0x004113F0 0x00ED + void __cdecl Camera_Chase(const ITEM_INFO *item); +0x004114E0 0x019E + int32_t __cdecl Camera_ShiftClamp(GAME_VECTOR *pos, int32_t clamp); +0x00411680 0x018E + void __cdecl Camera_Combat(const ITEM_INFO *item); +0x00411810 0x01E2 + void __cdecl Camera_Look(const ITEM_INFO *item); +0x00411A00 0x0099 + void __cdecl Camera_Fixed(void); +0x00411AA0 0x04A9 + void __cdecl Camera_Update(void); # game/cinema.c -00411F50 0000000A + void __cdecl Game_SetCutsceneTrack(int32_t track); -00411F60 00000112 + int32_t __cdecl Game_Cutscene_Start(int32_t level_num); -00412080 00000093 +R void __cdecl Misc_InitCinematicRooms(void); -00412120 0000016F + int32_t __cdecl Game_Cutscene_Control(int32_t nframes); -00412290 00000138 + void __cdecl Camera_UpdateCutscene(void); -004123D0 0000007F +R int32_t __cdecl Room_FindByPos(int32_t x, int32_t y, int32_t z); -00412450 000000DC + void __cdecl CutscenePlayer_Control(int16_t item_num); -00412530 00000096 + void __cdecl Lara_Control_Cutscene(int16_t item_num); -004125D0 0000008F +R void __cdecl CutscenePlayer1_Initialise(int16_t item_num); -00412660 00000033 +R void __cdecl CutscenePlayerGen_Initialise(int16_t item_num); -004126A0 00000245 + void __cdecl Camera_LoadCutsceneFrame(void); +0x00411F50 0x000A + void __cdecl Game_SetCutsceneTrack(int32_t track); +0x00411F60 0x0112 + int32_t __cdecl Game_Cutscene_Start(int32_t level_num); +0x00412080 0x0093 +R void __cdecl Misc_InitCinematicRooms(void); +0x00412120 0x016F + int32_t __cdecl Game_Cutscene_Control(int32_t nframes); +0x00412290 0x0138 + void __cdecl Camera_UpdateCutscene(void); +0x004123D0 0x007F +R int32_t __cdecl Room_FindByPos(int32_t x, int32_t y, int32_t z); +0x00412450 0x00DC + void __cdecl CutscenePlayer_Control(int16_t item_num); +0x00412530 0x0096 + void __cdecl Lara_Control_Cutscene(int16_t item_num); +0x004125D0 0x008F +R void __cdecl CutscenePlayer1_Initialise(int16_t item_num); +0x00412660 0x0033 +R void __cdecl CutscenePlayerGen_Initialise(int16_t item_num); +0x004126A0 0x0245 + void __cdecl Camera_LoadCutsceneFrame(void); # game/collide.c -004128F0 0000067C - void __cdecl Collide_GetCollisionInfo(COLL_INFO *coll, int32_t xpos, int32_t ypos, int32_t zpos, int16_t room_num, int32_t obj_height); -00412FB0 0000002F - int32_t __cdecl Room_FindGridShift(int32_t src, int32_t dst); -00412FE0 000003D2 - int32_t __cdecl Collide_CollideStaticObjects(COLL_INFO *coll, int32_t x, int32_t y, int32_t z, int16_t room_num, int32_t height); -004133D0 000000C8 - void __cdecl Room_GetNearbyRooms(int32_t x, int32_t y, int32_t z, int32_t r, int32_t h, int16_t room_num); -004134A0 00000055 - void __cdecl Room_GetNewRoom(int32_t x, int32_t y, int32_t z, int16_t room_num); -00413500 00000037 - void __cdecl Item_ShiftCol(ITEM_INFO *item, COLL_INFO *coll); -00413540 0000005D - void __cdecl Item_UpdateRoom(ITEM_INFO *item, int32_t height); -004135A0 00000099 - int16_t __cdecl Room_GetTiltType(FLOOR_INFO *floor, int32_t x, int32_t y, int32_t z); -00413640 00000195 - void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll); -004137E0 00000079 -R void __cdecl Misc_EffectSpaz(ITEM_INFO *lara_item, COLL_INFO *coll); -00413860 00000078 - void __cdecl Creature_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -004138E0 00000055 - void __cdecl Object_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00413940 00000077 - void __cdecl Door_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -004139C0 00000067 - void __cdecl Object_CollisionTrap(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00413A30 00000306 - void __cdecl Lara_Push(ITEM_INFO *item, ITEM_INFO *lara_item, COLL_INFO *coll, int32_t spaz_on, int32_t big_push); -00413D40 000000CB - int32_t __cdecl Item_TestBoundsCollide(ITEM_INFO *src_item, ITEM_INFO *dst_item, int32_t radius); -00413E10 00000137 - int32_t __cdecl Item_TestPosition(int16_t *bounds, ITEM_INFO *src_item, ITEM_INFO *dst_item); -00413F50 0000013B - void __cdecl Item_AlignPosition(XYZ_32 *vec, ITEM_INFO *src_item, ITEM_INFO *dst_item); -00414090 00000187 - int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM_INFO *item, ITEM_INFO *lara_item); -00414220 0000016E -R int32_t __cdecl Misc_Move3DPosTo3DPos(PHD_3DPOS *src_pos, PHD_3DPOS *dest_pos, int32_t velocity, PHD_ANGLE ang_add); +0x004128F0 0x067C - void __cdecl Collide_GetCollisionInfo(COLL_INFO *coll, int32_t xpos, int32_t ypos, int32_t zpos, int16_t room_num, int32_t obj_height); +0x00412FB0 0x002F - int32_t __cdecl Room_FindGridShift(int32_t src, int32_t dst); +0x00412FE0 0x03D2 - int32_t __cdecl Collide_CollideStaticObjects(COLL_INFO *coll, int32_t x, int32_t y, int32_t z, int16_t room_num, int32_t height); +0x004133D0 0x00C8 - void __cdecl Room_GetNearbyRooms(int32_t x, int32_t y, int32_t z, int32_t r, int32_t h, int16_t room_num); +0x004134A0 0x0055 - void __cdecl Room_GetNewRoom(int32_t x, int32_t y, int32_t z, int16_t room_num); +0x00413500 0x0037 - void __cdecl Item_ShiftCol(ITEM_INFO *item, COLL_INFO *coll); +0x00413540 0x005D - void __cdecl Item_UpdateRoom(ITEM_INFO *item, int32_t height); +0x004135A0 0x0099 - int16_t __cdecl Room_GetTiltType(FLOOR_INFO *floor, int32_t x, int32_t y, int32_t z); +0x00413640 0x0195 - void __cdecl Lara_BaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll); +0x004137E0 0x0079 -R void __cdecl Misc_EffectSpaz(ITEM_INFO *lara_item, COLL_INFO *coll); +0x00413860 0x0078 - void __cdecl Creature_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x004138E0 0x0055 - void __cdecl Object_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00413940 0x0077 - void __cdecl Door_Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x004139C0 0x0067 - void __cdecl Object_CollisionTrap(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00413A30 0x0306 - void __cdecl Lara_Push(ITEM_INFO *item, ITEM_INFO *lara_item, COLL_INFO *coll, int32_t spaz_on, int32_t big_push); +0x00413D40 0x00CB - int32_t __cdecl Item_TestBoundsCollide(ITEM_INFO *src_item, ITEM_INFO *dst_item, int32_t radius); +0x00413E10 0x0137 - int32_t __cdecl Item_TestPosition(int16_t *bounds, ITEM_INFO *src_item, ITEM_INFO *dst_item); +0x00413F50 0x013B - void __cdecl Item_AlignPosition(XYZ_32 *vec, ITEM_INFO *src_item, ITEM_INFO *dst_item); +0x00414090 0x0187 - int32_t __cdecl Lara_MovePosition(XYZ_32 *vec, ITEM_INFO *item, ITEM_INFO *lara_item); +0x00414220 0x016E -R int32_t __cdecl Misc_Move3DPosTo3DPos(PHD_3DPOS *src_pos, PHD_3DPOS *dest_pos, int32_t velocity, PHD_ANGLE ang_add); # game/control.c -00414390 00000356 - int32_t __cdecl Game_Control(int32_t nframes, int32_t demo_mode); -004146F0 00000338 - void __cdecl Item_Animate(ITEM_INFO *item); -00414A60 000000AB - int32_t __cdecl Item_GetAnimChange(ITEM_INFO *item, ANIM_STRUCT *anim); -00414B10 0000005F - void __cdecl Item_Translate(ITEM_INFO *item, int32_t x, int32_t y, int32_t z); -00414B70 00000198 * FLOOR_INFO *__cdecl Room_GetFloor(int32_t x, int32_t y, int32_t z, int16_t *room_num); -00414D10 00000168 - int32_t __cdecl Room_GetWaterHeight(int32_t x, int32_t y, int32_t z, int16_t room_num); -00414E80 00000265 * int32_t __cdecl Room_GetHeight(const FLOOR_INFO *floor, int32_t x, int32_t y, int32_t z); -00415100 000000E7 - void __cdecl Camera_RefreshFromTrigger(int16_t type, int16_t *data); -004151F0 00000690 - void __cdecl Room_TestTriggers(int16_t *data, int32_t heavy); -004158D0 00000055 - int32_t __cdecl Item_IsTriggerActive(ITEM_INFO *item); -00415930 0000023D * int32_t __cdecl Room_GetCeiling(const FLOOR_INFO *floor, int32_t x, int32_t y, int32_t z); -00415B90 0000004E - int16_t __cdecl Room_GetDoor(FLOOR_INFO *floor); -00415BE0 000000A0 + int32_t __cdecl LOS_Check(const GAME_VECTOR *start, GAME_VECTOR *target); -00415C80 000002EB + int32_t __cdecl LOS_CheckZ(const GAME_VECTOR *start, GAME_VECTOR *target); -00415F70 000002EC + int32_t __cdecl LOS_CheckX(const GAME_VECTOR *start, GAME_VECTOR *target); -00416260 000000DA + int32_t __cdecl LOS_ClipTarget(const GAME_VECTOR *start, GAME_VECTOR *target, const FLOOR_INFO *floor); -00416340 000002FE + int32_t __cdecl LOS_CheckSmashable(const GAME_VECTOR *start, GAME_VECTOR *target); -00416640 000000B3 - void __cdecl Room_FlipMap(void); -00416700 00000096 - void __cdecl Room_RemoveFlipItems(ROOM_INFO *r); -004167A0 0000005C - void __cdecl Room_AddFlipItems(ROOM_INFO *r); -00416800 00000024 - void __cdecl Control_TriggerMusicTrack(int16_t value, int16_t flags, int16_t type); -00416830 000000DA - void __cdecl Control_TriggerMusicNormalTrack(int16_t value, int16_t flags, int16_t type); +0x00414390 0x0356 - int32_t __cdecl Game_Control(int32_t nframes, int32_t demo_mode); +0x004146F0 0x0338 - void __cdecl Item_Animate(ITEM_INFO *item); +0x00414A60 0x00AB - int32_t __cdecl Item_GetAnimChange(ITEM_INFO *item, ANIM_STRUCT *anim); +0x00414B10 0x005F - void __cdecl Item_Translate(ITEM_INFO *item, int32_t x, int32_t y, int32_t z); +0x00414B70 0x0198 * FLOOR_INFO *__cdecl Room_GetFloor(int32_t x, int32_t y, int32_t z, int16_t *room_num); +0x00414D10 0x0168 - int32_t __cdecl Room_GetWaterHeight(int32_t x, int32_t y, int32_t z, int16_t room_num); +0x00414E80 0x0265 * int32_t __cdecl Room_GetHeight(const FLOOR_INFO *floor, int32_t x, int32_t y, int32_t z); +0x00415100 0x00E7 - void __cdecl Camera_RefreshFromTrigger(int16_t type, int16_t *data); +0x004151F0 0x0690 - void __cdecl Room_TestTriggers(int16_t *data, int32_t heavy); +0x004158D0 0x0055 - int32_t __cdecl Item_IsTriggerActive(ITEM_INFO *item); +0x00415930 0x023D * int32_t __cdecl Room_GetCeiling(const FLOOR_INFO *floor, int32_t x, int32_t y, int32_t z); +0x00415B90 0x004E - int16_t __cdecl Room_GetDoor(FLOOR_INFO *floor); +0x00415BE0 0x00A0 + int32_t __cdecl LOS_Check(const GAME_VECTOR *start, GAME_VECTOR *target); +0x00415C80 0x02EB + int32_t __cdecl LOS_CheckZ(const GAME_VECTOR *start, GAME_VECTOR *target); +0x00415F70 0x02EC + int32_t __cdecl LOS_CheckX(const GAME_VECTOR *start, GAME_VECTOR *target); +0x00416260 0x00DA + int32_t __cdecl LOS_ClipTarget(const GAME_VECTOR *start, GAME_VECTOR *target, const FLOOR_INFO *floor); +0x00416340 0x02FE + int32_t __cdecl LOS_CheckSmashable(const GAME_VECTOR *start, GAME_VECTOR *target); +0x00416640 0x00B3 - void __cdecl Room_FlipMap(void); +0x00416700 0x0096 - void __cdecl Room_RemoveFlipItems(ROOM_INFO *r); +0x004167A0 0x005C - void __cdecl Room_AddFlipItems(ROOM_INFO *r); +0x00416800 0x0024 - void __cdecl Control_TriggerMusicTrack(int16_t value, int16_t flags, int16_t type); +0x00416830 0x00DA - void __cdecl Control_TriggerMusicNormalTrack(int16_t value, int16_t flags, int16_t type); # game/demo.c -00416910 00000059 * int32_t __cdecl Demo_Control(int32_t level_num); -00416970 000001B0 - int32_t __cdecl Demo_Start(int32_t level_num); -00416B20 000000CD - void __cdecl Demo_LoadLaraPos(void); -00416BF0 0000002D - void __cdecl Demo_GetInput(void); +0x00416910 0x0059 * int32_t __cdecl Demo_Control(int32_t level_num); +0x00416970 0x01B0 - int32_t __cdecl Demo_Start(int32_t level_num); +0x00416B20 0x00CD - void __cdecl Demo_LoadLaraPos(void); +0x00416BF0 0x002D - void __cdecl Demo_GetInput(void); # game/diver.c -00416C20 0000007A - int16_t __cdecl Diver_Harpoon(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE y_rot, int16_t room_num); -00416CA0 00000106 - int32_t __cdecl Diver_GetWaterSurface(int32_t x, int32_t y, int32_t z, int16_t room_num); -00416DB0 00000389 - void __cdecl Diver_Control(int16_t item_num); +0x00416C20 0x007A - int16_t __cdecl Diver_Harpoon(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE y_rot, int16_t room_num); +0x00416CA0 0x0106 - int32_t __cdecl Diver_GetWaterSurface(int32_t x, int32_t y, int32_t z, int16_t room_num); +0x00416DB0 0x0389 - void __cdecl Diver_Control(int16_t item_num); # game/dog.c -00417160 00000387 - void __cdecl Dog_Control(int16_t item_num); -00417510 0000027E - void __cdecl Tiger_Control(int16_t item_num); +0x00417160 0x0387 - void __cdecl Dog_Control(int16_t item_num); +0x00417510 0x027E - void __cdecl Tiger_Control(int16_t item_num); # game/dragon.c -004177B0 0000017F -R void __cdecl ControlTwinkle(int16_t fx_num); -00417930 000000D9 -R void __cdecl CreateBartoliLight(int16_t item_num); -00417A10 000000AB -R int16_t __cdecl DragonFire(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -00417AC0 000002ED -R void __cdecl DragonCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00417DB0 000000D9 -R void __cdecl DragonBones(int16_t item_num); -00417E90 00000519 -R void __cdecl DragonControl(int16_t back_num); -004183E0 00000114 -R void __cdecl InitialiseBartoli(int16_t item_num); -00418500 00000193 -R void __cdecl BartoliControl(int16_t item_num); -004186A0 00000287 -R void __cdecl DinoControl(int16_t item_num); +0x004177B0 0x017F -R void __cdecl ControlTwinkle(int16_t fx_num); +0x00417930 0x00D9 -R void __cdecl CreateBartoliLight(int16_t item_num); +0x00417A10 0x00AB -R int16_t __cdecl DragonFire(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); +0x00417AC0 0x02ED -R void __cdecl DragonCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00417DB0 0x00D9 -R void __cdecl DragonBones(int16_t item_num); +0x00417E90 0x0519 -R void __cdecl DragonControl(int16_t back_num); +0x004183E0 0x0114 -R void __cdecl InitialiseBartoli(int16_t item_num); +0x00418500 0x0193 -R void __cdecl BartoliControl(int16_t item_num); +0x004186A0 0x0287 -R void __cdecl DinoControl(int16_t item_num); # game/draw.c -00418950 00000037 - int32_t __cdecl Game_DrawCinematic(void); -00418990 00000037 - int32_t __cdecl Game_Draw(void); -004189D0 000002B0 - void __cdecl Room_DrawAllRooms(int16_t current_room); -00418C80 000001C6 - void __cdecl Room_GetBounds(void); -00418E50 0000037F - void __cdecl Room_SetBounds(int16_t *objptr, int32_t room_num, ROOM_INFO *parent); -004191D0 000003D2 - void __cdecl Room_Clip(ROOM_INFO *r); -004195B0 000000B4 - void __cdecl Room_DrawSingleRoomGeometry(int16_t room_num); -00419670 00000218 - void __cdecl Room_DrawSingleRoomObjects(int16_t room_num); -00419890 00000147 - void __cdecl Effect_Draw(int16_t fx_num); -004199E0 00000083 - void __cdecl Object_DrawSpriteItem(ITEM_INFO *item); -00419A70 00000378 - void __cdecl Object_DrawAnimatingItem(ITEM_INFO *item); -00419DF0 00000D02 - void __cdecl Lara_Draw(ITEM_INFO *item); -0041AB20 00000BC6 - void __cdecl Lara_Draw_I(ITEM_INFO *item, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); -0041B710 00000034 + void __cdecl Matrix_InitInterpolate(int32_t frac, int32_t rate); -0041B750 00000022 + void __cdecl Matrix_Pop_I(void); -0041B780 00000027 + void __cdecl Matrix_Push_I(void); -0041B7B0 00000031 + void __cdecl Matrix_RotY_I(int16_t ang); -0041B7F0 00000031 + void __cdecl Matrix_RotX_I(int16_t ang); -0041B830 00000031 + void __cdecl Matrix_RotZ_I(int16_t ang); -0041B870 00000041 + void __cdecl Matrix_TranslateRel_I(int32_t x, int32_t y, int32_t z); -0041B8C0 00000047 + void __cdecl Matrix_TranslateRel_ID(int32_t x, int32_t y, int32_t z, int32_t x2, int32_t y2, int32_t z2); -0041B910 00000041 + void __cdecl Matrix_RotYXZ_I(int16_t y, int16_t x, int16_t z); -0041B960 0000003D + void __cdecl Matrix_RotYXZsuperpack_I(int16_t **pprot1, int16_t **pprot2, int32_t skip); -0041B9A0 000000A1 + void __cdecl Matrix_RotYXZsuperpack(int16_t **pprot, int32_t skip); -0041BA50 0000002A + void __cdecl Output_InsertPolygons_I(int16_t *ptr, int32_t clip); -0041BA80 000001A5 + void __cdecl Matrix_Interpolate(void); -0041BC30 000000FC + void __cdecl Matrix_InterpolateArm(void); -0041BD30 0000014B - void __cdecl Gun_DrawFlash(int32_t weapon_type, int32_t clip); -0041BEA0 000000E8 - void __cdecl Output_CalculateObjectLighting(ITEM_INFO *item, int16_t *frame); -0041BF90 00000092 * int32_t __cdecl Item_GetFrames(const ITEM_INFO *item, int16_t *frmptr[], int32_t *rate); -0041C030 0000007C * int16_t *__cdecl Item_GetBoundsAccurate(const ITEM_INFO *item); -0041C0B0 00000035 - int16_t *__cdecl Item_GetBestFrame(const ITEM_INFO *item); -0041C0F0 00000048 -R void __cdecl AddDynamicLight(int32_t x, int32_t y, int32_t z, int32_t intensity, int32_t falloff); +0x00418950 0x0037 - int32_t __cdecl Game_DrawCinematic(void); +0x00418990 0x0037 - int32_t __cdecl Game_Draw(void); +0x004189D0 0x02B0 - void __cdecl Room_DrawAllRooms(int16_t current_room); +0x00418C80 0x01C6 - void __cdecl Room_GetBounds(void); +0x00418E50 0x037F - void __cdecl Room_SetBounds(int16_t *objptr, int32_t room_num, ROOM_INFO *parent); +0x004191D0 0x03D2 - void __cdecl Room_Clip(ROOM_INFO *r); +0x004195B0 0x00B4 - void __cdecl Room_DrawSingleRoomGeometry(int16_t room_num); +0x00419670 0x0218 - void __cdecl Room_DrawSingleRoomObjects(int16_t room_num); +0x00419890 0x0147 - void __cdecl Effect_Draw(int16_t fx_num); +0x004199E0 0x0083 - void __cdecl Object_DrawSpriteItem(ITEM_INFO *item); +0x00419A70 0x0378 - void __cdecl Object_DrawAnimatingItem(ITEM_INFO *item); +0x00419DF0 0x0D02 - void __cdecl Lara_Draw(ITEM_INFO *item); +0x0041AB20 0x0BC6 - void __cdecl Lara_Draw_I(ITEM_INFO *item, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); +0x0041B710 0x0034 + void __cdecl Matrix_InitInterpolate(int32_t frac, int32_t rate); +0x0041B750 0x0022 + void __cdecl Matrix_Pop_I(void); +0x0041B780 0x0027 + void __cdecl Matrix_Push_I(void); +0x0041B7B0 0x0031 + void __cdecl Matrix_RotY_I(int16_t ang); +0x0041B7F0 0x0031 + void __cdecl Matrix_RotX_I(int16_t ang); +0x0041B830 0x0031 + void __cdecl Matrix_RotZ_I(int16_t ang); +0x0041B870 0x0041 + void __cdecl Matrix_TranslateRel_I(int32_t x, int32_t y, int32_t z); +0x0041B8C0 0x0047 + void __cdecl Matrix_TranslateRel_ID(int32_t x, int32_t y, int32_t z, int32_t x2, int32_t y2, int32_t z2); +0x0041B910 0x0041 + void __cdecl Matrix_RotYXZ_I(int16_t y, int16_t x, int16_t z); +0x0041B960 0x003D + void __cdecl Matrix_RotYXZsuperpack_I(int16_t **pprot1, int16_t **pprot2, int32_t skip); +0x0041B9A0 0x00A1 + void __cdecl Matrix_RotYXZsuperpack(int16_t **pprot, int32_t skip); +0x0041BA50 0x002A + void __cdecl Output_InsertPolygons_I(int16_t *ptr, int32_t clip); +0x0041BA80 0x01A5 + void __cdecl Matrix_Interpolate(void); +0x0041BC30 0x00FC + void __cdecl Matrix_InterpolateArm(void); +0x0041BD30 0x014B - void __cdecl Gun_DrawFlash(int32_t weapon_type, int32_t clip); +0x0041BEA0 0x00E8 - void __cdecl Output_CalculateObjectLighting(ITEM_INFO *item, int16_t *frame); +0x0041BF90 0x0092 * int32_t __cdecl Item_GetFrames(const ITEM_INFO *item, int16_t *frmptr[], int32_t *rate); +0x0041C030 0x007C * int16_t *__cdecl Item_GetBoundsAccurate(const ITEM_INFO *item); +0x0041C0B0 0x0035 - int16_t *__cdecl Item_GetBestFrame(const ITEM_INFO *item); +0x0041C0F0 0x0048 -R void __cdecl AddDynamicLight(int32_t x, int32_t y, int32_t z, int32_t intensity, int32_t falloff); # game/eel.c -0041C140 0000019D -R void __cdecl BigEelControl(int16_t item_num); -0041C2E0 000001E1 -R void __cdecl EelControl(int16_t item_num); +0x0041C140 0x019D -R void __cdecl BigEelControl(int16_t item_num); +0x0041C2E0 0x01E1 -R void __cdecl EelControl(int16_t item_num); # game/effects.c -0041C4D0 0000008C -R int32_t __cdecl ItemNearLara(PHD_3DPOS *pos, int32_t distance); -0041C560 00000068 - void __cdecl Sound_Update(void); -0041C5D0 00000059 -R int16_t __cdecl DoBloodSplat(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE direction, int16_t room_num); -0041C630 000000A4 -R void __cdecl DoLotsOfBlood(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE direction, int16_t room_num, int32_t num); -0041C6E0 00000082 -R void __cdecl ControlBlood1(int16_t fx_num); -0041C770 0000007F -R void __cdecl ControlExplosion1(int16_t fx_num); -0041C7F0 00000072 -R void __cdecl Richochet(GAME_VECTOR *pos); -0041C870 00000030 -R void __cdecl ControlRichochet1(int16_t fx_num); -0041C8A0 00000064 -R void __cdecl CreateBubble(PHD_3DPOS *pos, int16_t room_num); -0041C910 00000078 -R void __cdecl LaraBubbles(ITEM_INFO *item); -0041C990 000000F3 -R void __cdecl ControlBubble1(int16_t fx_num); -0041CA90 000000C2 -R void __cdecl Splash(ITEM_INFO *item); -0041CB60 00000071 -R void __cdecl ControlSplash1(int16_t fx_num); -0041CBE0 000000AE -R void __cdecl ControlWaterSprite(int16_t fx_num); -0041CC90 0000008C -R void __cdecl ControlSnowSprite(int16_t fx_num); -0041CD20 000000DE -R void __cdecl ControlHotLiquid(int16_t fx_num); -0041CE00 0000013D -R void __cdecl WaterFall(int16_t fx_num); -0041CF40 0000000B -R void __cdecl finish_level_effect(ITEM_INFO *item); -0041CF50 00000016 -R void __cdecl turn180_effect(ITEM_INFO *item); -0041CF70 00000096 -R void __cdecl floor_shake_effect(ITEM_INFO *item); -0041D010 00000040 -R void __cdecl lara_normal_effect(ITEM_INFO *item); -0041D050 0000001C -R void __cdecl BoilerFX(ITEM_INFO *item); -0041D070 0000008F -R void __cdecl FloodFX(ITEM_INFO *item); -0041D100 00000023 -R void __cdecl RubbleFX(ITEM_INFO *item); -0041D130 0000002C -R void __cdecl ChandelierFX(ITEM_INFO *item); -0041D160 00000023 -R void __cdecl ExplosionFX(ITEM_INFO *item); -0041D190 0000001C -R void __cdecl PistonFX(ITEM_INFO *item); -0041D1B0 0000001C -R void __cdecl CurtainFX(ITEM_INFO *item); -0041D1D0 0000001C -R void __cdecl StatueFX(ITEM_INFO *item); -0041D1F0 0000001C -R void __cdecl SetChangeFX(ITEM_INFO *item); -0041D210 0000003F -R void __cdecl ControlDingDong(int16_t item_num); -0041D250 00000037 -R void __cdecl ControlLaraAlarm(int16_t item_num); -0041D290 00000067 -R void __cdecl ControlAlarmSound(int16_t item_num); -0041D300 0000005D -R void __cdecl ControlBirdTweeter(int16_t item_num); -0041D360 00000059 -R void __cdecl DoChimeSound(ITEM_INFO *item); -0041D3C0 00000068 -R void __cdecl ControlClockChimes(int16_t item_num); -0041D430 00000128 -R void __cdecl SphereOfDoomCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -0041D560 000000F0 -R void __cdecl SphereOfDoom(int16_t item_num); -0041D650 0000012D -R void __cdecl DrawSphereOfDoom(ITEM_INFO *item); -0041D780 0000000A -R void __cdecl lara_hands_free(ITEM_INFO *item); -0041D790 00000005 -R void __cdecl flip_map_effect(ITEM_INFO *item); -0041D7A0 00000043 -R void __cdecl draw_right_gun(ITEM_INFO *item); -0041D7F0 00000043 -R void __cdecl draw_left_gun(ITEM_INFO *item); -0041D840 00000063 -R void __cdecl swap_meshes_with_meshswap1(ITEM_INFO *item); -0041D8B0 00000063 -R void __cdecl swap_meshes_with_meshswap2(ITEM_INFO *item); -0041D920 0000009A -R void __cdecl swap_meshes_with_meshswap3(ITEM_INFO *item); -0041D9C0 00000009 -R void __cdecl invisibility_on(ITEM_INFO *item); -0041D9D0 00000016 -R void __cdecl invisibility_off(ITEM_INFO *item); -0041D9F0 00000009 -R void __cdecl dynamic_light_on(ITEM_INFO *item); -0041DA00 0000000B -R void __cdecl dynamic_light_off(ITEM_INFO *item); -0041DA10 00000005 -R void __cdecl reset_hair(ITEM_INFO *item); -0041DA20 00000024 -R void __cdecl AssaultStart(ITEM_INFO *item); -0041DA50 0000001F -R void __cdecl AssaultStop(ITEM_INFO *item); -0041DA70 00000017 -R void __cdecl AssaultReset(ITEM_INFO *item); -0041DA90 000000B2 -R void __cdecl AssaultFinished(ITEM_INFO *item); +0x0041C4D0 0x008C -R int32_t __cdecl ItemNearLara(PHD_3DPOS *pos, int32_t distance); +0x0041C560 0x0068 - void __cdecl Sound_Update(void); +0x0041C5D0 0x0059 -R int16_t __cdecl DoBloodSplat(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE direction, int16_t room_num); +0x0041C630 0x00A4 -R void __cdecl DoLotsOfBlood(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE direction, int16_t room_num, int32_t num); +0x0041C6E0 0x0082 -R void __cdecl ControlBlood1(int16_t fx_num); +0x0041C770 0x007F -R void __cdecl ControlExplosion1(int16_t fx_num); +0x0041C7F0 0x0072 -R void __cdecl Richochet(GAME_VECTOR *pos); +0x0041C870 0x0030 -R void __cdecl ControlRichochet1(int16_t fx_num); +0x0041C8A0 0x0064 -R void __cdecl CreateBubble(PHD_3DPOS *pos, int16_t room_num); +0x0041C910 0x0078 -R void __cdecl LaraBubbles(ITEM_INFO *item); +0x0041C990 0x00F3 -R void __cdecl ControlBubble1(int16_t fx_num); +0x0041CA90 0x00C2 -R void __cdecl Splash(ITEM_INFO *item); +0x0041CB60 0x0071 -R void __cdecl ControlSplash1(int16_t fx_num); +0x0041CBE0 0x00AE -R void __cdecl ControlWaterSprite(int16_t fx_num); +0x0041CC90 0x008C -R void __cdecl ControlSnowSprite(int16_t fx_num); +0x0041CD20 0x00DE -R void __cdecl ControlHotLiquid(int16_t fx_num); +0x0041CE00 0x013D -R void __cdecl WaterFall(int16_t fx_num); +0x0041CF40 0x000B -R void __cdecl finish_level_effect(ITEM_INFO *item); +0x0041CF50 0x0016 -R void __cdecl turn180_effect(ITEM_INFO *item); +0x0041CF70 0x0096 -R void __cdecl floor_shake_effect(ITEM_INFO *item); +0x0041D010 0x0040 -R void __cdecl lara_normal_effect(ITEM_INFO *item); +0x0041D050 0x001C -R void __cdecl BoilerFX(ITEM_INFO *item); +0x0041D070 0x008F -R void __cdecl FloodFX(ITEM_INFO *item); +0x0041D100 0x0023 -R void __cdecl RubbleFX(ITEM_INFO *item); +0x0041D130 0x002C -R void __cdecl ChandelierFX(ITEM_INFO *item); +0x0041D160 0x0023 -R void __cdecl ExplosionFX(ITEM_INFO *item); +0x0041D190 0x001C -R void __cdecl PistonFX(ITEM_INFO *item); +0x0041D1B0 0x001C -R void __cdecl CurtainFX(ITEM_INFO *item); +0x0041D1D0 0x001C -R void __cdecl StatueFX(ITEM_INFO *item); +0x0041D1F0 0x001C -R void __cdecl SetChangeFX(ITEM_INFO *item); +0x0041D210 0x003F -R void __cdecl ControlDingDong(int16_t item_num); +0x0041D250 0x0037 -R void __cdecl ControlLaraAlarm(int16_t item_num); +0x0041D290 0x0067 -R void __cdecl ControlAlarmSound(int16_t item_num); +0x0041D300 0x005D -R void __cdecl ControlBirdTweeter(int16_t item_num); +0x0041D360 0x0059 -R void __cdecl DoChimeSound(ITEM_INFO *item); +0x0041D3C0 0x0068 -R void __cdecl ControlClockChimes(int16_t item_num); +0x0041D430 0x0128 -R void __cdecl SphereOfDoomCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x0041D560 0x00F0 -R void __cdecl SphereOfDoom(int16_t item_num); +0x0041D650 0x012D -R void __cdecl DrawSphereOfDoom(ITEM_INFO *item); +0x0041D780 0x000A -R void __cdecl lara_hands_free(ITEM_INFO *item); +0x0041D790 0x0005 -R void __cdecl flip_map_effect(ITEM_INFO *item); +0x0041D7A0 0x0043 -R void __cdecl draw_right_gun(ITEM_INFO *item); +0x0041D7F0 0x0043 -R void __cdecl draw_left_gun(ITEM_INFO *item); +0x0041D840 0x0063 -R void __cdecl swap_meshes_with_meshswap1(ITEM_INFO *item); +0x0041D8B0 0x0063 -R void __cdecl swap_meshes_with_meshswap2(ITEM_INFO *item); +0x0041D920 0x009A -R void __cdecl swap_meshes_with_meshswap3(ITEM_INFO *item); +0x0041D9C0 0x0009 -R void __cdecl invisibility_on(ITEM_INFO *item); +0x0041D9D0 0x0016 -R void __cdecl invisibility_off(ITEM_INFO *item); +0x0041D9F0 0x0009 -R void __cdecl dynamic_light_on(ITEM_INFO *item); +0x0041DA00 0x000B -R void __cdecl dynamic_light_off(ITEM_INFO *item); +0x0041DA10 0x0005 -R void __cdecl reset_hair(ITEM_INFO *item); +0x0041DA20 0x0024 -R void __cdecl AssaultStart(ITEM_INFO *item); +0x0041DA50 0x001F -R void __cdecl AssaultStop(ITEM_INFO *item); +0x0041DA70 0x0017 -R void __cdecl AssaultReset(ITEM_INFO *item); +0x0041DA90 0x00B2 -R void __cdecl AssaultFinished(ITEM_INFO *item); # game/enemies.c -0041DB50 00000076 -R int16_t __cdecl Knife(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -0041DBD0 0000040B -R void __cdecl Cult2Control(int16_t item_num); -0041E000 000004A1 -R void __cdecl MonkControl(int16_t item_num); -0041E4D0 000005BD -R void __cdecl Worker3Control(int16_t item_num); -0041EAE0 000003F7 -R void __cdecl DrawXianLord(ITEM_INFO *item); -0041EEE0 000000A8 -R void __cdecl XianDamage(ITEM_INFO *item, CREATURE_INFO *xian, int32_t damage); -0041EF90 00000058 -R void __cdecl InitialiseXianLord(int16_t item_num); -0041EFF0 00000590 -R void __cdecl XianLordControl(int16_t item_num); -0041F5D0 00000098 -R void __cdecl WarriorSparkleTrail(ITEM_INFO *item); -0041F670 000003BA -R void __cdecl WarriorControl(int16_t item_num); +0x0041DB50 0x0076 -R int16_t __cdecl Knife(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); +0x0041DBD0 0x040B -R void __cdecl Cult2Control(int16_t item_num); +0x0041E000 0x04A1 -R void __cdecl MonkControl(int16_t item_num); +0x0041E4D0 0x05BD -R void __cdecl Worker3Control(int16_t item_num); +0x0041EAE0 0x03F7 -R void __cdecl DrawXianLord(ITEM_INFO *item); +0x0041EEE0 0x00A8 -R void __cdecl XianDamage(ITEM_INFO *item, CREATURE_INFO *xian, int32_t damage); +0x0041EF90 0x0058 -R void __cdecl InitialiseXianLord(int16_t item_num); +0x0041EFF0 0x0590 -R void __cdecl XianLordControl(int16_t item_num); +0x0041F5D0 0x0098 -R void __cdecl WarriorSparkleTrail(ITEM_INFO *item); +0x0041F670 0x03BA -R void __cdecl WarriorControl(int16_t item_num); # game/gameflow.c -0041FA60 000001E9 *R int32_t __cdecl GF_LoadScriptFile(char *fname); -0041FC50 0000001F *R int32_t __cdecl GF_DoFrontEndSequence(void); -0041FC70 00000066 *R int32_t __cdecl GF_DoLevelSequence(int32_t level, int32_t type); -0041FCE0 0000047C -R int32_t __cdecl GF_InterpretSequence(int16_t *ptr, int32_t type, int32_t seq_type); -004201C0 00000CD3 -R void __cdecl GF_ModifyInventory(int32_t level, int32_t type); +0x0041FA60 0x01E9 *R int32_t __cdecl GF_LoadScriptFile(char *fname); +0x0041FC50 0x001F *R int32_t __cdecl GF_DoFrontEndSequence(void); +0x0041FC70 0x0066 *R int32_t __cdecl GF_DoLevelSequence(int32_t level, int32_t type); +0x0041FCE0 0x047C -R int32_t __cdecl GF_InterpretSequence(int16_t *ptr, int32_t type, int32_t seq_type); +0x004201C0 0x0CD3 -R void __cdecl GF_ModifyInventory(int32_t level, int32_t type); # game/hair.c -00420EA0 00000074 -R void __cdecl InitialiseHair(void); -00420F20 000009E5 -R void __cdecl HairControl(int32_t in_cutscene); -00421920 00000076 -R void __cdecl DrawHair(void); +0x00420EA0 0x0074 -R void __cdecl InitialiseHair(void); +0x00420F20 0x09E5 -R void __cdecl HairControl(int32_t in_cutscene); +0x00421920 0x0076 -R void __cdecl DrawHair(void); # game/health.c -004219A0 0000002D + BOOL __cdecl Overlay_FlashCounter(void); -004219D0 00000145 + void __cdecl Overlay_DrawAssaultTimer(void); -00421B20 00000045 + void __cdecl Overlay_DrawGameInfo(bool pickup_state); -00421B70 000000AB + void __cdecl Overlay_DrawHealthBar(bool flash_state); -00421C20 00000097 + void __cdecl Overlay_DrawAirBar(bool flash_state); -00421CC0 00000028 + void __cdecl Overlay_MakeAmmoString(char *string); -00421CF0 00000132 + void __cdecl Overlay_DrawAmmoInfo(void); -00421E40 00000015 + void __cdecl Overlay_InitialisePickUpDisplay(void); -00421E60 000000FD + void __cdecl Overlay_DrawPickups(bool pickup_state); -00421F60 0000006C + void __cdecl Overlay_AddDisplayPickup(int16_t obj_num); -00421FD0 0000007A + void __cdecl Overlay_DisplayModeInfo(char* string); -00422050 0000002C + void __cdecl Overlay_DrawModeInfo(void); +0x004219A0 0x002D + BOOL __cdecl Overlay_FlashCounter(void); +0x004219D0 0x0145 + void __cdecl Overlay_DrawAssaultTimer(void); +0x00421B20 0x0045 + void __cdecl Overlay_DrawGameInfo(bool pickup_state); +0x00421B70 0x00AB + void __cdecl Overlay_DrawHealthBar(bool flash_state); +0x00421C20 0x0097 + void __cdecl Overlay_DrawAirBar(bool flash_state); +0x00421CC0 0x0028 + void __cdecl Overlay_MakeAmmoString(char *string); +0x00421CF0 0x0132 + void __cdecl Overlay_DrawAmmoInfo(void); +0x00421E40 0x0015 + void __cdecl Overlay_InitialisePickUpDisplay(void); +0x00421E60 0x00FD + void __cdecl Overlay_DrawPickups(bool pickup_state); +0x00421F60 0x006C + void __cdecl Overlay_AddDisplayPickup(int16_t obj_num); +0x00421FD0 0x007A + void __cdecl Overlay_DisplayModeInfo(char* string); +0x00422050 0x002C + void __cdecl Overlay_DrawModeInfo(void); # game/inventory.c -00422080 0000119E + int32_t __cdecl Inv_Display(int32_t inventory_mode); -00423310 00000156 + void __cdecl Inv_Construct(void); -00423470 00000089 + void __cdecl Inv_SelectMeshes(INVENTORY_ITEM *inv_item); -00423500 00000081 + int32_t __cdecl Inv_AnimateInventoryItem(INVENTORY_ITEM *inv_item); -00423590 0000041D + void __cdecl Inv_DrawInventoryItem(INVENTORY_ITEM *inv_item); -004239C0 00000019 -R int32_t __cdecl GetDebouncedInput(int32_t input); -004239E0 00000005 - void __cdecl Inv_DoInventoryPicture(void); -004239F0 00000132 - void __cdecl Inv_DoInventoryBackground(void); +0x00422080 0x119E + int32_t __cdecl Inv_Display(int32_t inventory_mode); +0x00423310 0x0156 + void __cdecl Inv_Construct(void); +0x00423470 0x0089 + void __cdecl Inv_SelectMeshes(INVENTORY_ITEM *inv_item); +0x00423500 0x0081 + int32_t __cdecl Inv_AnimateInventoryItem(INVENTORY_ITEM *inv_item); +0x00423590 0x041D + void __cdecl Inv_DrawInventoryItem(INVENTORY_ITEM *inv_item); +0x004239C0 0x0019 -R int32_t __cdecl GetDebouncedInput(int32_t input); +0x004239E0 0x0005 - void __cdecl Inv_DoInventoryPicture(void); +0x004239F0 0x0132 - void __cdecl Inv_DoInventoryBackground(void); # game/invfunc.c -00423B30 0000010A -R void __cdecl InitColours(void); -00423C40 00000167 -R void __cdecl RingIsOpen(RING_INFO *ring); -00423DB0 00000081 -R void __cdecl RingIsNotOpen(RING_INFO *ring); -00423E40 00000369 -R void __cdecl RingNotActive(INVENTORY_ITEM *inv_item); -004242B0 00000032 -R void __cdecl RingActive(void); -004242F0 000006BE -R int32_t __cdecl Inv_AddItem(int32_t item_num); -00424B00 00000129 -R void __cdecl Inv_InsertItem(INVENTORY_ITEM *inv_item); -00424C30 00000077 -R int32_t __cdecl Inv_RequestItem(int32_t item_num); -00424CB0 0000001B -R void __cdecl Inv_RemoveAllItems(void); -00424CD0 00000110 -R int32_t __cdecl Inv_RemoveItem(int32_t item_num); -00424DE0 000000C1 -R int32_t __cdecl Inv_GetItemOption(int32_t item_num); -00424FD0 00000024 -R void __cdecl RemoveInventoryText(void); -00425000 0000010F -R void __cdecl Inv_Ring_Init(RING_INFO *ring, int16_t type, INVENTORY_ITEM **list, int16_t qty, int16_t current, IMOTION_INFO *imo); -00425110 00000060 -R void __cdecl Inv_Ring_GetView(RING_INFO *ring, PHD_3DPOS *viewer); -00425170 00000040 -R void __cdecl Inv_Ring_Light(RING_INFO *ring); -004251B0 0000002C -R void __cdecl Inv_Ring_CalcAdders(RING_INFO *ring, int16_t rotation_duration); -004251E0 0000013E -R void __cdecl Inv_Ring_DoMotions(RING_INFO *ring); -00425320 0000002F -R void __cdecl Inv_Ring_RotateLeft(RING_INFO *ring); -00425350 0000002F -R void __cdecl Inv_Ring_RotateRight(RING_INFO *ring); -00425380 00000063 -R void __cdecl Inv_Ring_MotionInit(RING_INFO *ring, int16_t frames, int16_t status, int16_t status_target); -004253F0 0000002C -R void __cdecl Inv_Ring_MotionSetup(RING_INFO *ring, int16_t status, int16_t status_target, int16_t frames); -00425420 00000026 -R void __cdecl Inv_Ring_MotionRadius(RING_INFO *ring, int16_t target); -00425450 00000022 -R void __cdecl Inv_Ring_MotionRotation(RING_INFO *ring, int16_t rotation, int16_t target); -00425480 00000025 -R void __cdecl Inv_Ring_MotionCameraPos(RING_INFO *ring, int16_t target); -004254B0 00000020 -R void __cdecl Inv_Ring_MotionCameraPitch(RING_INFO *ring, int16_t target); -004254D0 0000005D -R void __cdecl Inv_Ring_MotionItemSelect(RING_INFO *ring, INVENTORY_ITEM *inv_item); -00425530 00000063 -R void __cdecl Inv_Ring_MotionItemDeselect(RING_INFO *ring, INVENTORY_ITEM *inv_item); +0x00423B30 0x010A -R void __cdecl InitColours(void); +0x00423C40 0x0167 -R void __cdecl RingIsOpen(RING_INFO *ring); +0x00423DB0 0x0081 -R void __cdecl RingIsNotOpen(RING_INFO *ring); +0x00423E40 0x0369 -R void __cdecl RingNotActive(INVENTORY_ITEM *inv_item); +0x004242B0 0x0032 -R void __cdecl RingActive(void); +0x004242F0 0x06BE -R int32_t __cdecl Inv_AddItem(int32_t item_num); +0x00424B00 0x0129 -R void __cdecl Inv_InsertItem(INVENTORY_ITEM *inv_item); +0x00424C30 0x0077 -R int32_t __cdecl Inv_RequestItem(int32_t item_num); +0x00424CB0 0x001B -R void __cdecl Inv_RemoveAllItems(void); +0x00424CD0 0x0110 -R int32_t __cdecl Inv_RemoveItem(int32_t item_num); +0x00424DE0 0x00C1 -R int32_t __cdecl Inv_GetItemOption(int32_t item_num); +0x00424FD0 0x0024 -R void __cdecl RemoveInventoryText(void); +0x00425000 0x010F -R void __cdecl Inv_Ring_Init(RING_INFO *ring, int16_t type, INVENTORY_ITEM **list, int16_t qty, int16_t current, IMOTION_INFO *imo); +0x00425110 0x0060 -R void __cdecl Inv_Ring_GetView(RING_INFO *ring, PHD_3DPOS *viewer); +0x00425170 0x0040 -R void __cdecl Inv_Ring_Light(RING_INFO *ring); +0x004251B0 0x002C -R void __cdecl Inv_Ring_CalcAdders(RING_INFO *ring, int16_t rotation_duration); +0x004251E0 0x013E -R void __cdecl Inv_Ring_DoMotions(RING_INFO *ring); +0x00425320 0x002F -R void __cdecl Inv_Ring_RotateLeft(RING_INFO *ring); +0x00425350 0x002F -R void __cdecl Inv_Ring_RotateRight(RING_INFO *ring); +0x00425380 0x0063 -R void __cdecl Inv_Ring_MotionInit(RING_INFO *ring, int16_t frames, int16_t status, int16_t status_target); +0x004253F0 0x002C -R void __cdecl Inv_Ring_MotionSetup(RING_INFO *ring, int16_t status, int16_t status_target, int16_t frames); +0x00425420 0x0026 -R void __cdecl Inv_Ring_MotionRadius(RING_INFO *ring, int16_t target); +0x00425450 0x0022 -R void __cdecl Inv_Ring_MotionRotation(RING_INFO *ring, int16_t rotation, int16_t target); +0x00425480 0x0025 -R void __cdecl Inv_Ring_MotionCameraPos(RING_INFO *ring, int16_t target); +0x004254B0 0x0020 -R void __cdecl Inv_Ring_MotionCameraPitch(RING_INFO *ring, int16_t target); +0x004254D0 0x005D -R void __cdecl Inv_Ring_MotionItemSelect(RING_INFO *ring, INVENTORY_ITEM *inv_item); +0x00425530 0x0063 -R void __cdecl Inv_Ring_MotionItemDeselect(RING_INFO *ring, INVENTORY_ITEM *inv_item); # game/invtext.c -004255A0 00000082 -R void __cdecl Init_Requester(REQUEST_INFO *req); -00425630 000000A3 -R void __cdecl Remove_Requester(REQUEST_INFO *req); -004256E0 0000001B -R void __cdecl ReqItemCentreAlign(REQUEST_INFO *req, TEXTSTRING *txt); -00425700 00000054 -R void __cdecl ReqItemLeftalign(REQUEST_INFO *req, TEXTSTRING *txt); -00425760 00000056 -R void __cdecl ReqItemRightalign(REQUEST_INFO *req, TEXTSTRING *txt); -004257C0 00000866 -R int32_t __cdecl Display_Requester(REQUEST_INFO *req, int32_t des, int32_t backgrounds); -00426030 000000AA -R void __cdecl SetRequesterHeading(REQUEST_INFO *req, char *text1, uint32_t flags1, char *text2, uint32_t flags2); -004260E0 00000013 -R void __cdecl RemoveAllReqItems(REQUEST_INFO *req); -00426100 000000C0 -R void __cdecl ChangeRequesterItem(REQUEST_INFO *req, int32_t item, char *text1, uint32_t flags1, char *text2, uint32_t flags2); -004261C0 000000AC -R void __cdecl AddRequesterItem(REQUEST_INFO *req, char *text1, uint32_t flags1, char *text2, uint32_t flags2); -00426270 00000039 -R void __cdecl SetPCRequesterSize(REQUEST_INFO *req, int32_t maxlines, int32_t ypos); -004262B0 00000081 -R int32_t __cdecl AddAssaultTime(uint32_t time); -00426340 000001D6 -R void __cdecl ShowGymStatsText(char *time_str, int32_t type); -00426520 00000397 -R void __cdecl ShowStatsText(char *time_str, int32_t type); -004268C0 00000425 -R void __cdecl ShowEndStatsText(void); +0x004255A0 0x0082 -R void __cdecl Init_Requester(REQUEST_INFO *req); +0x00425630 0x00A3 -R void __cdecl Remove_Requester(REQUEST_INFO *req); +0x004256E0 0x001B -R void __cdecl ReqItemCentreAlign(REQUEST_INFO *req, TEXTSTRING *txt); +0x00425700 0x0054 -R void __cdecl ReqItemLeftalign(REQUEST_INFO *req, TEXTSTRING *txt); +0x00425760 0x0056 -R void __cdecl ReqItemRightalign(REQUEST_INFO *req, TEXTSTRING *txt); +0x004257C0 0x0866 -R int32_t __cdecl Display_Requester(REQUEST_INFO *req, int32_t des, int32_t backgrounds); +0x00426030 0x00AA -R void __cdecl SetRequesterHeading(REQUEST_INFO *req, char *text1, uint32_t flags1, char *text2, uint32_t flags2); +0x004260E0 0x0013 -R void __cdecl RemoveAllReqItems(REQUEST_INFO *req); +0x00426100 0x00C0 -R void __cdecl ChangeRequesterItem(REQUEST_INFO *req, int32_t item, char *text1, uint32_t flags1, char *text2, uint32_t flags2); +0x004261C0 0x00AC -R void __cdecl AddRequesterItem(REQUEST_INFO *req, char *text1, uint32_t flags1, char *text2, uint32_t flags2); +0x00426270 0x0039 -R void __cdecl SetPCRequesterSize(REQUEST_INFO *req, int32_t maxlines, int32_t ypos); +0x004262B0 0x0081 -R int32_t __cdecl AddAssaultTime(uint32_t time); +0x00426340 0x01D6 -R void __cdecl ShowGymStatsText(char *time_str, int32_t type); +0x00426520 0x0397 -R void __cdecl ShowStatsText(char *time_str, int32_t type); +0x004268C0 0x0425 -R void __cdecl ShowEndStatsText(void); # game/items.c -00426CF0 00000052 + void __cdecl Item_InitialiseArray(int32_t num_items); -00426D50 0000011E + void __cdecl Item_Kill(int16_t item_num); -00426E70 00000039 + int16_t __cdecl Item_Create(void); -00426EB0 000001B3 + void __cdecl Item_Initialise(int16_t item_num); -00427070 0000008A + void __cdecl Item_RemoveActive(int16_t item_num); -00427100 0000006F + void __cdecl Item_RemoveDrawn(int16_t item_num); -00427170 0000005A + void __cdecl Item_AddActive(int16_t item_num); -004271D0 0000009C + void __cdecl Item_NewRoom(int16_t item_num, int16_t room_num); -00427270 0000007C + int32_t __cdecl Item_GlobalReplace(int32_t src_object_num, int32_t dst_object_num); -004272F0 00000030 + void __cdecl Effect_InitialiseArray(void); -00427320 0000006C + int16_t __cdecl Effect_Create(int16_t room_num); -00427390 000000E3 + void __cdecl Effect_Kill(int16_t fx_num); -00427480 00000093 + void __cdecl Effect_NewRoom(int16_t fx_num, int16_t room_num); -00427520 00000058 + void __cdecl Item_ClearKilled(void); +0x00426CF0 0x0052 + void __cdecl Item_InitialiseArray(int32_t num_items); +0x00426D50 0x011E + void __cdecl Item_Kill(int16_t item_num); +0x00426E70 0x0039 + int16_t __cdecl Item_Create(void); +0x00426EB0 0x01B3 + void __cdecl Item_Initialise(int16_t item_num); +0x00427070 0x008A + void __cdecl Item_RemoveActive(int16_t item_num); +0x00427100 0x006F + void __cdecl Item_RemoveDrawn(int16_t item_num); +0x00427170 0x005A + void __cdecl Item_AddActive(int16_t item_num); +0x004271D0 0x009C + void __cdecl Item_NewRoom(int16_t item_num, int16_t room_num); +0x00427270 0x007C + int32_t __cdecl Item_GlobalReplace(int32_t src_object_num, int32_t dst_object_num); +0x004272F0 0x0030 + void __cdecl Effect_InitialiseArray(void); +0x00427320 0x006C + int16_t __cdecl Effect_Create(int16_t room_num); +0x00427390 0x00E3 + void __cdecl Effect_Kill(int16_t fx_num); +0x00427480 0x0093 + void __cdecl Effect_NewRoom(int16_t fx_num, int16_t room_num); +0x00427520 0x0058 + void __cdecl Item_ClearKilled(void); # game/lara.c -00427580 00000195 + void __cdecl Lara_HandleAboveWater(ITEM_INFO *item, COLL_INFO *coll); -00427720 00000066 + void __cdecl Lara_LookUpDown(void); -00427790 00000072 + void __cdecl Lara_LookLeftRight(void); -00427810 00000089 + void __cdecl Lara_ResetLook(void); -004278A0 0000008B + void __cdecl Lara_State_Walk(ITEM_INFO *item, COLL_INFO *coll); -00427930 00000143 + void __cdecl Lara_State_Run(ITEM_INFO *item, COLL_INFO *coll); -00427A80 00000148 + void __cdecl Lara_State_Stop(ITEM_INFO *item, COLL_INFO *coll); -00427BD0 000000D3 + void __cdecl Lara_State_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); -00427CB0 00000057 + void __cdecl Lara_State_FastBack(ITEM_INFO *item, COLL_INFO *coll); -00427D10 0000008A + void __cdecl Lara_State_TurnRight(ITEM_INFO *item, COLL_INFO *coll); -00427DA0 00000089 + void __cdecl Lara_State_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -00427E30 00000014 + void __cdecl Lara_State_Death(ITEM_INFO *item, COLL_INFO *coll); -00427E50 00000040 + void __cdecl Lara_State_FastFall(ITEM_INFO *item, COLL_INFO *coll); -00427E90 00000058 + void __cdecl Lara_State_Hang(ITEM_INFO *item, COLL_INFO *coll); -00427EF0 0000001C + void __cdecl Lara_State_Reach(ITEM_INFO *item, COLL_INFO *coll); -00427F10 0000000A + void __cdecl Lara_State_Splat(ITEM_INFO *item, COLL_INFO *coll); -00427F20 0000010C + void __cdecl Lara_State_Compress(ITEM_INFO *item, COLL_INFO *coll); -00428030 00000084 + void __cdecl Lara_State_Back(ITEM_INFO *item, COLL_INFO *coll); -004280C0 0000000B + void __cdecl Lara_State_Null(ITEM_INFO *item, COLL_INFO *coll); -004280D0 0000004B + void __cdecl Lara_State_FastTurn(ITEM_INFO *item, COLL_INFO *coll); -00428120 0000007C + void __cdecl Lara_State_StepRight(ITEM_INFO *item, COLL_INFO *coll); -004281A0 0000007C + void __cdecl Lara_State_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -00428220 0000002B + void __cdecl Lara_State_Slide(ITEM_INFO *item, COLL_INFO *coll); -00428250 0000004A + void __cdecl Lara_State_BackJump(ITEM_INFO *item, COLL_INFO *coll); -004282A0 00000033 + void __cdecl Lara_State_RightJump(ITEM_INFO *item, COLL_INFO *coll); -004282E0 00000033 + void __cdecl Lara_State_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -00428320 00000013 + void __cdecl Lara_State_UpJump(ITEM_INFO *item, COLL_INFO *coll); -00428340 0000002C + void __cdecl Lara_State_Fallback(ITEM_INFO *item, COLL_INFO *coll); -00428370 00000035 + void __cdecl Lara_State_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -004283B0 00000035 + void __cdecl Lara_State_HangRight(ITEM_INFO *item, COLL_INFO *coll); -004283F0 00000018 + void __cdecl Lara_State_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -00428410 00000030 + void __cdecl Lara_State_PushBlock(ITEM_INFO *item, COLL_INFO *coll); -00428440 00000027 + void __cdecl Lara_State_PPReady(ITEM_INFO *item, COLL_INFO *coll); -00428470 00000030 + void __cdecl Lara_State_Pickup(ITEM_INFO *item, COLL_INFO *coll); -004284A0 00000058 + void __cdecl Lara_State_PickupFlare(ITEM_INFO *item, COLL_INFO *coll); -00428500 00000039 + void __cdecl Lara_State_SwitchOn(ITEM_INFO *item, COLL_INFO *coll); -00428540 00000030 + void __cdecl Lara_State_UseKey(ITEM_INFO *item, COLL_INFO *coll); -00428570 0000001D + void __cdecl Lara_State_Special(ITEM_INFO *item, COLL_INFO *coll); -00428590 0000002F + void __cdecl Lara_State_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -004285C0 00000054 + void __cdecl Lara_State_FastDive(ITEM_INFO *item, COLL_INFO *coll); -00428620 00000015 + void __cdecl Lara_State_WaterOut(ITEM_INFO *item, COLL_INFO *coll); -00428640 000000CA + void __cdecl Lara_State_Wade(ITEM_INFO *item, COLL_INFO *coll); -00428710 00000096 + void __cdecl Lara_State_DeathSlide(ITEM_INFO *item, COLL_INFO *coll); -004287B0 0000004C + void __cdecl Lara_State_Extra_Breath(ITEM_INFO *item, COLL_INFO *coll); -00428800 00000047 + void __cdecl Lara_State_Extra_YetiKill(ITEM_INFO *item, COLL_INFO *coll); -00428850 00000091 + void __cdecl Lara_State_Extra_SharkKill(ITEM_INFO *item, COLL_INFO *coll); -004288F0 00000013 + void __cdecl Lara_State_Extra_Airlock(ITEM_INFO *item, COLL_INFO *coll); -00428910 0000001D + void __cdecl Lara_State_Extra_GongBong(ITEM_INFO *item, COLL_INFO *coll); -00428930 00000051 + void __cdecl Lara_State_Extra_DinoKill(ITEM_INFO *item, COLL_INFO *coll); -00428990 000000BC + void __cdecl Lara_State_Extra_PullDagger(ITEM_INFO *item, COLL_INFO *coll); -00428A50 0000004D + void __cdecl Lara_State_Extra_StartAnim(ITEM_INFO *item, COLL_INFO *coll); -00428AA0 000000A5 + void __cdecl Lara_State_Extra_StartHouse(ITEM_INFO *item, COLL_INFO *coll); -00428B50 000000A3 + void __cdecl Lara_State_Extra_FinalAnim(ITEM_INFO *item, COLL_INFO *coll); -00428C00 00000051 + int32_t __cdecl Lara_Fallen(ITEM_INFO *item, COLL_INFO *coll); -00428C60 0000009B + void __cdecl Lara_CollideStop(ITEM_INFO *item, COLL_INFO *coll); -00428D20 00000191 + void __cdecl Lara_Col_Walk(ITEM_INFO *item, COLL_INFO *coll); -00428EC0 00000176 + void __cdecl Lara_Col_Run(ITEM_INFO *item, COLL_INFO *coll); -00429040 00000081 + void __cdecl Lara_Col_Stop(ITEM_INFO *item, COLL_INFO *coll); -004290D0 000000D7 + void __cdecl Lara_Col_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); -004291B0 000000B3 + void __cdecl Lara_Col_FastBack(ITEM_INFO *item, COLL_INFO *coll); -00429270 00000095 + void __cdecl Lara_Col_TurnRight(ITEM_INFO *item, COLL_INFO *coll); -00429310 00000013 + void __cdecl Lara_Col_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); -00429330 00000068 + void __cdecl Lara_Col_Death(ITEM_INFO *item, COLL_INFO *coll); -004293A0 00000099 + void __cdecl Lara_Col_FastFall(ITEM_INFO *item, COLL_INFO *coll); -00429440 00000127 + void __cdecl Lara_Col_Hang(ITEM_INFO *item, COLL_INFO *coll); -00429570 00000090 + void __cdecl Lara_Col_Reach(ITEM_INFO *item, COLL_INFO *coll); -00429600 00000059 + void __cdecl Lara_Col_Splat(ITEM_INFO *item, COLL_INFO *coll); -00429660 00000013 + void __cdecl Lara_Col_Land(ITEM_INFO *item, COLL_INFO *coll); -00429680 00000096 + void __cdecl Lara_Col_Compress( ITEM_INFO *item, COLL_INFO *coll ); -00429720 000000FB + void __cdecl Lara_Col_Back(ITEM_INFO *item, COLL_INFO *coll); -00429820 000000BE + void __cdecl Lara_Col_StepRight(ITEM_INFO *item, COLL_INFO *coll); -004298E0 00000013 + void __cdecl Lara_Col_StepLeft(ITEM_INFO *item, COLL_INFO *coll); -00429900 0000001E + void __cdecl Lara_Col_Slide(ITEM_INFO *item, COLL_INFO *coll); -00429920 00000023 + void __cdecl Lara_Col_BackJump(ITEM_INFO *item, COLL_INFO *coll); -00429950 00000023 + void __cdecl Lara_Col_RightJump(ITEM_INFO *item, COLL_INFO *coll); -00429980 00000023 + void __cdecl Lara_Col_LeftJump(ITEM_INFO *item, COLL_INFO *coll); -004299B0 0000011B + void __cdecl Lara_Col_UpJump(ITEM_INFO *item, COLL_INFO *coll); -00429AD0 00000083 + void __cdecl Lara_Col_Fallback(ITEM_INFO *item, COLL_INFO *coll); -00429B60 00000033 + void __cdecl Lara_Col_HangLeft(ITEM_INFO *item, COLL_INFO *coll); -00429BA0 00000033 + void __cdecl Lara_Col_HangRight(ITEM_INFO *item, COLL_INFO *coll); -00429BE0 00000023 + void __cdecl Lara_Col_SlideBack(ITEM_INFO *item, COLL_INFO *coll); -00429C10 00000013 + void __cdecl Lara_Col_Null(ITEM_INFO *item, COLL_INFO *coll); -00429C30 00000081 + void __cdecl Lara_Col_Roll(ITEM_INFO *item, COLL_INFO *coll); -00429CC0 000000B3 + void __cdecl Lara_Col_Roll2(ITEM_INFO *item, COLL_INFO *coll); -00429D80 00000069 + void __cdecl Lara_Col_SwanDive(ITEM_INFO *item, COLL_INFO *coll); -00429DF0 00000079 + void __cdecl Lara_Col_FastDive(ITEM_INFO *item, COLL_INFO *coll); -00429E70 00000162 + void __cdecl Lara_Col_Wade(ITEM_INFO *item, COLL_INFO *coll); -00429FE0 00000036 + void __cdecl Lara_Col_Default(ITEM_INFO *item, COLL_INFO *coll); -0042A020 00000074 + void __cdecl Lara_Col_Jumper(ITEM_INFO *item, COLL_INFO *coll); -0042A0A0 00000032 + void __cdecl Lara_GetCollisionInfo(ITEM_INFO *item, COLL_INFO *coll); -0042A0E0 000000E2 + void __cdecl Lara_SlideSlope(ITEM_INFO *item, COLL_INFO *coll); -0042A1D0 00000067 + int32_t __cdecl Lara_HitCeiling(ITEM_INFO *item, COLL_INFO *coll); -0042A240 0000007F + int32_t __cdecl Lara_DeflectEdge(ITEM_INFO *item, COLL_INFO *coll); -0042A2C0 00000136 + void __cdecl Lara_DeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll); -0042A440 000000AB + void __cdecl Lara_SlideEdgeJump(ITEM_INFO *item, COLL_INFO *coll); -0042A530 000000E1 + int32_t __cdecl Lara_TestWall(ITEM_INFO *item, int32_t front, int32_t right, int32_t down); -0042A640 000000F5 + int32_t __cdecl Lara_TestHangOnClimbWall(ITEM_INFO *item, COLL_INFO *coll); -0042A750 000000BE + int32_t __cdecl Lara_TestClimbStance(ITEM_INFO *item, COLL_INFO *coll); -0042A810 0000033E + void __cdecl Lara_HangTest(ITEM_INFO *item, COLL_INFO *coll); -0042AB70 000000AD + int32_t __cdecl Lara_TestEdgeCatch(ITEM_INFO *item, COLL_INFO *coll, int32_t *edge); -0042AC20 0000016D + int32_t __cdecl Lara_TestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll); -0042AD90 0000019E + int32_t __cdecl Lara_TestHangJump(ITEM_INFO *item, COLL_INFO *coll); -0042AF30 000000B1 + int32_t __cdecl Lara_TestHangSwingIn(ITEM_INFO *item, PHD_ANGLE angle); -0042AFF0 000002E7 + int32_t __cdecl Lara_TestVault(ITEM_INFO *item, COLL_INFO *coll); -0042B2E0 00000130 + int32_t __cdecl Lara_TestSlide(ITEM_INFO *item, COLL_INFO *coll); -0042B410 00000075 + int16_t __cdecl Lara_FloorFront(ITEM_INFO *item, PHD_ANGLE ang, int32_t dist); -0042B490 000000BB + int32_t __cdecl Lara_LandedBad(ITEM_INFO *item, COLL_INFO *coll); -0042B550 0000038F + void __cdecl Lara_GetJointAbsPosition(XYZ_32 *vec, int32_t joint); -0042B8E0 0000031A + void __cdecl Lara_GetJointAbsPosition_I(ITEM_INFO *item, XYZ_32 *vec, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); +0x00427580 0x0195 + void __cdecl Lara_HandleAboveWater(ITEM_INFO *item, COLL_INFO *coll); +0x00427720 0x0066 + void __cdecl Lara_LookUpDown(void); +0x00427790 0x0072 + void __cdecl Lara_LookLeftRight(void); +0x00427810 0x0089 + void __cdecl Lara_ResetLook(void); +0x004278A0 0x008B + void __cdecl Lara_State_Walk(ITEM_INFO *item, COLL_INFO *coll); +0x00427930 0x0143 + void __cdecl Lara_State_Run(ITEM_INFO *item, COLL_INFO *coll); +0x00427A80 0x0148 + void __cdecl Lara_State_Stop(ITEM_INFO *item, COLL_INFO *coll); +0x00427BD0 0x00D3 + void __cdecl Lara_State_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); +0x00427CB0 0x0057 + void __cdecl Lara_State_FastBack(ITEM_INFO *item, COLL_INFO *coll); +0x00427D10 0x008A + void __cdecl Lara_State_TurnRight(ITEM_INFO *item, COLL_INFO *coll); +0x00427DA0 0x0089 + void __cdecl Lara_State_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); +0x00427E30 0x0014 + void __cdecl Lara_State_Death(ITEM_INFO *item, COLL_INFO *coll); +0x00427E50 0x0040 + void __cdecl Lara_State_FastFall(ITEM_INFO *item, COLL_INFO *coll); +0x00427E90 0x0058 + void __cdecl Lara_State_Hang(ITEM_INFO *item, COLL_INFO *coll); +0x00427EF0 0x001C + void __cdecl Lara_State_Reach(ITEM_INFO *item, COLL_INFO *coll); +0x00427F10 0x000A + void __cdecl Lara_State_Splat(ITEM_INFO *item, COLL_INFO *coll); +0x00427F20 0x010C + void __cdecl Lara_State_Compress(ITEM_INFO *item, COLL_INFO *coll); +0x00428030 0x0084 + void __cdecl Lara_State_Back(ITEM_INFO *item, COLL_INFO *coll); +0x004280C0 0x000B + void __cdecl Lara_State_Null(ITEM_INFO *item, COLL_INFO *coll); +0x004280D0 0x004B + void __cdecl Lara_State_FastTurn(ITEM_INFO *item, COLL_INFO *coll); +0x00428120 0x007C + void __cdecl Lara_State_StepRight(ITEM_INFO *item, COLL_INFO *coll); +0x004281A0 0x007C + void __cdecl Lara_State_StepLeft(ITEM_INFO *item, COLL_INFO *coll); +0x00428220 0x002B + void __cdecl Lara_State_Slide(ITEM_INFO *item, COLL_INFO *coll); +0x00428250 0x004A + void __cdecl Lara_State_BackJump(ITEM_INFO *item, COLL_INFO *coll); +0x004282A0 0x0033 + void __cdecl Lara_State_RightJump(ITEM_INFO *item, COLL_INFO *coll); +0x004282E0 0x0033 + void __cdecl Lara_State_LeftJump(ITEM_INFO *item, COLL_INFO *coll); +0x00428320 0x0013 + void __cdecl Lara_State_UpJump(ITEM_INFO *item, COLL_INFO *coll); +0x00428340 0x002C + void __cdecl Lara_State_Fallback(ITEM_INFO *item, COLL_INFO *coll); +0x00428370 0x0035 + void __cdecl Lara_State_HangLeft(ITEM_INFO *item, COLL_INFO *coll); +0x004283B0 0x0035 + void __cdecl Lara_State_HangRight(ITEM_INFO *item, COLL_INFO *coll); +0x004283F0 0x0018 + void __cdecl Lara_State_SlideBack(ITEM_INFO *item, COLL_INFO *coll); +0x00428410 0x0030 + void __cdecl Lara_State_PushBlock(ITEM_INFO *item, COLL_INFO *coll); +0x00428440 0x0027 + void __cdecl Lara_State_PPReady(ITEM_INFO *item, COLL_INFO *coll); +0x00428470 0x0030 + void __cdecl Lara_State_Pickup(ITEM_INFO *item, COLL_INFO *coll); +0x004284A0 0x0058 + void __cdecl Lara_State_PickupFlare(ITEM_INFO *item, COLL_INFO *coll); +0x00428500 0x0039 + void __cdecl Lara_State_SwitchOn(ITEM_INFO *item, COLL_INFO *coll); +0x00428540 0x0030 + void __cdecl Lara_State_UseKey(ITEM_INFO *item, COLL_INFO *coll); +0x00428570 0x001D + void __cdecl Lara_State_Special(ITEM_INFO *item, COLL_INFO *coll); +0x00428590 0x002F + void __cdecl Lara_State_SwanDive(ITEM_INFO *item, COLL_INFO *coll); +0x004285C0 0x0054 + void __cdecl Lara_State_FastDive(ITEM_INFO *item, COLL_INFO *coll); +0x00428620 0x0015 + void __cdecl Lara_State_WaterOut(ITEM_INFO *item, COLL_INFO *coll); +0x00428640 0x00CA + void __cdecl Lara_State_Wade(ITEM_INFO *item, COLL_INFO *coll); +0x00428710 0x0096 + void __cdecl Lara_State_DeathSlide(ITEM_INFO *item, COLL_INFO *coll); +0x004287B0 0x004C + void __cdecl Lara_State_Extra_Breath(ITEM_INFO *item, COLL_INFO *coll); +0x00428800 0x0047 + void __cdecl Lara_State_Extra_YetiKill(ITEM_INFO *item, COLL_INFO *coll); +0x00428850 0x0091 + void __cdecl Lara_State_Extra_SharkKill(ITEM_INFO *item, COLL_INFO *coll); +0x004288F0 0x0013 + void __cdecl Lara_State_Extra_Airlock(ITEM_INFO *item, COLL_INFO *coll); +0x00428910 0x001D + void __cdecl Lara_State_Extra_GongBong(ITEM_INFO *item, COLL_INFO *coll); +0x00428930 0x0051 + void __cdecl Lara_State_Extra_DinoKill(ITEM_INFO *item, COLL_INFO *coll); +0x00428990 0x00BC + void __cdecl Lara_State_Extra_PullDagger(ITEM_INFO *item, COLL_INFO *coll); +0x00428A50 0x004D + void __cdecl Lara_State_Extra_StartAnim(ITEM_INFO *item, COLL_INFO *coll); +0x00428AA0 0x00A5 + void __cdecl Lara_State_Extra_StartHouse(ITEM_INFO *item, COLL_INFO *coll); +0x00428B50 0x00A3 + void __cdecl Lara_State_Extra_FinalAnim(ITEM_INFO *item, COLL_INFO *coll); +0x00428C00 0x0051 + int32_t __cdecl Lara_Fallen(ITEM_INFO *item, COLL_INFO *coll); +0x00428C60 0x009B + void __cdecl Lara_CollideStop(ITEM_INFO *item, COLL_INFO *coll); +0x00428D20 0x0191 + void __cdecl Lara_Col_Walk(ITEM_INFO *item, COLL_INFO *coll); +0x00428EC0 0x0176 + void __cdecl Lara_Col_Run(ITEM_INFO *item, COLL_INFO *coll); +0x00429040 0x0081 + void __cdecl Lara_Col_Stop(ITEM_INFO *item, COLL_INFO *coll); +0x004290D0 0x00D7 + void __cdecl Lara_Col_ForwardJump(ITEM_INFO *item, COLL_INFO *coll); +0x004291B0 0x00B3 + void __cdecl Lara_Col_FastBack(ITEM_INFO *item, COLL_INFO *coll); +0x00429270 0x0095 + void __cdecl Lara_Col_TurnRight(ITEM_INFO *item, COLL_INFO *coll); +0x00429310 0x0013 + void __cdecl Lara_Col_TurnLeft(ITEM_INFO *item, COLL_INFO *coll); +0x00429330 0x0068 + void __cdecl Lara_Col_Death(ITEM_INFO *item, COLL_INFO *coll); +0x004293A0 0x0099 + void __cdecl Lara_Col_FastFall(ITEM_INFO *item, COLL_INFO *coll); +0x00429440 0x0127 + void __cdecl Lara_Col_Hang(ITEM_INFO *item, COLL_INFO *coll); +0x00429570 0x0090 + void __cdecl Lara_Col_Reach(ITEM_INFO *item, COLL_INFO *coll); +0x00429600 0x0059 + void __cdecl Lara_Col_Splat(ITEM_INFO *item, COLL_INFO *coll); +0x00429660 0x0013 + void __cdecl Lara_Col_Land(ITEM_INFO *item, COLL_INFO *coll); +0x00429680 0x0096 + void __cdecl Lara_Col_Compress( ITEM_INFO *item, COLL_INFO *coll ); +0x00429720 0x00FB + void __cdecl Lara_Col_Back(ITEM_INFO *item, COLL_INFO *coll); +0x00429820 0x00BE + void __cdecl Lara_Col_StepRight(ITEM_INFO *item, COLL_INFO *coll); +0x004298E0 0x0013 + void __cdecl Lara_Col_StepLeft(ITEM_INFO *item, COLL_INFO *coll); +0x00429900 0x001E + void __cdecl Lara_Col_Slide(ITEM_INFO *item, COLL_INFO *coll); +0x00429920 0x0023 + void __cdecl Lara_Col_BackJump(ITEM_INFO *item, COLL_INFO *coll); +0x00429950 0x0023 + void __cdecl Lara_Col_RightJump(ITEM_INFO *item, COLL_INFO *coll); +0x00429980 0x0023 + void __cdecl Lara_Col_LeftJump(ITEM_INFO *item, COLL_INFO *coll); +0x004299B0 0x011B + void __cdecl Lara_Col_UpJump(ITEM_INFO *item, COLL_INFO *coll); +0x00429AD0 0x0083 + void __cdecl Lara_Col_Fallback(ITEM_INFO *item, COLL_INFO *coll); +0x00429B60 0x0033 + void __cdecl Lara_Col_HangLeft(ITEM_INFO *item, COLL_INFO *coll); +0x00429BA0 0x0033 + void __cdecl Lara_Col_HangRight(ITEM_INFO *item, COLL_INFO *coll); +0x00429BE0 0x0023 + void __cdecl Lara_Col_SlideBack(ITEM_INFO *item, COLL_INFO *coll); +0x00429C10 0x0013 + void __cdecl Lara_Col_Null(ITEM_INFO *item, COLL_INFO *coll); +0x00429C30 0x0081 + void __cdecl Lara_Col_Roll(ITEM_INFO *item, COLL_INFO *coll); +0x00429CC0 0x00B3 + void __cdecl Lara_Col_Roll2(ITEM_INFO *item, COLL_INFO *coll); +0x00429D80 0x0069 + void __cdecl Lara_Col_SwanDive(ITEM_INFO *item, COLL_INFO *coll); +0x00429DF0 0x0079 + void __cdecl Lara_Col_FastDive(ITEM_INFO *item, COLL_INFO *coll); +0x00429E70 0x0162 + void __cdecl Lara_Col_Wade(ITEM_INFO *item, COLL_INFO *coll); +0x00429FE0 0x0036 + void __cdecl Lara_Col_Default(ITEM_INFO *item, COLL_INFO *coll); +0x0042A020 0x0074 + void __cdecl Lara_Col_Jumper(ITEM_INFO *item, COLL_INFO *coll); +0x0042A0A0 0x0032 + void __cdecl Lara_GetCollisionInfo(ITEM_INFO *item, COLL_INFO *coll); +0x0042A0E0 0x00E2 + void __cdecl Lara_SlideSlope(ITEM_INFO *item, COLL_INFO *coll); +0x0042A1D0 0x0067 + int32_t __cdecl Lara_HitCeiling(ITEM_INFO *item, COLL_INFO *coll); +0x0042A240 0x007F + int32_t __cdecl Lara_DeflectEdge(ITEM_INFO *item, COLL_INFO *coll); +0x0042A2C0 0x0136 + void __cdecl Lara_DeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll); +0x0042A440 0x00AB + void __cdecl Lara_SlideEdgeJump(ITEM_INFO *item, COLL_INFO *coll); +0x0042A530 0x00E1 + int32_t __cdecl Lara_TestWall(ITEM_INFO *item, int32_t front, int32_t right, int32_t down); +0x0042A640 0x00F5 + int32_t __cdecl Lara_TestHangOnClimbWall(ITEM_INFO *item, COLL_INFO *coll); +0x0042A750 0x00BE + int32_t __cdecl Lara_TestClimbStance(ITEM_INFO *item, COLL_INFO *coll); +0x0042A810 0x033E + void __cdecl Lara_HangTest(ITEM_INFO *item, COLL_INFO *coll); +0x0042AB70 0x00AD + int32_t __cdecl Lara_TestEdgeCatch(ITEM_INFO *item, COLL_INFO *coll, int32_t *edge); +0x0042AC20 0x016D + int32_t __cdecl Lara_TestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll); +0x0042AD90 0x019E + int32_t __cdecl Lara_TestHangJump(ITEM_INFO *item, COLL_INFO *coll); +0x0042AF30 0x00B1 + int32_t __cdecl Lara_TestHangSwingIn(ITEM_INFO *item, PHD_ANGLE angle); +0x0042AFF0 0x02E7 + int32_t __cdecl Lara_TestVault(ITEM_INFO *item, COLL_INFO *coll); +0x0042B2E0 0x0130 + int32_t __cdecl Lara_TestSlide(ITEM_INFO *item, COLL_INFO *coll); +0x0042B410 0x0075 + int16_t __cdecl Lara_FloorFront(ITEM_INFO *item, PHD_ANGLE ang, int32_t dist); +0x0042B490 0x00BB + int32_t __cdecl Lara_LandedBad(ITEM_INFO *item, COLL_INFO *coll); +0x0042B550 0x038F + void __cdecl Lara_GetJointAbsPosition(XYZ_32 *vec, int32_t joint); +0x0042B8E0 0x031A + void __cdecl Lara_GetJointAbsPosition_I(ITEM_INFO *item, XYZ_32 *vec, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate); # game/lara1gun.c -0042BC00 00000033 -R void __cdecl draw_shotgun_meshes(int32_t weapon_type); -0042BC40 0000002B -R void __cdecl undraw_shotgun_meshes(int32_t weapon_type); -0042BC70 00000070 -R void __cdecl ready_shotgun(int32_t weapon_type); -0042BCE0 000000F5 -R void __cdecl RifleHandler(int32_t weapon_type); -0042BDE0 000000F2 -R void __cdecl FireShotgun(void); -0042BEE0 0000007B -R void __cdecl FireM16(int32_t running); -0042BF60 00000187 -R void __cdecl FireHarpoon(void); -0042C0F0 00000344 -R void __cdecl ControlHarpoonBolt(int16_t item_num); -0042C440 000000F0 -R void __cdecl FireRocket(void); -0042C530 000003FD -R void __cdecl ControlRocket(int16_t item_num); -0042C930 00000166 -R void __cdecl draw_shotgun(int32_t weapon_type); -0042CAA0 00000104 -R void __cdecl undraw_shotgun(int32_t weapon_type); -0042CBB0 0000037E -R void __cdecl AnimateShotgun(int32_t weapon_type); +0x0042BC00 0x0033 -R void __cdecl draw_shotgun_meshes(int32_t weapon_type); +0x0042BC40 0x002B -R void __cdecl undraw_shotgun_meshes(int32_t weapon_type); +0x0042BC70 0x0070 -R void __cdecl ready_shotgun(int32_t weapon_type); +0x0042BCE0 0x00F5 -R void __cdecl RifleHandler(int32_t weapon_type); +0x0042BDE0 0x00F2 -R void __cdecl FireShotgun(void); +0x0042BEE0 0x007B -R void __cdecl FireM16(int32_t running); +0x0042BF60 0x0187 -R void __cdecl FireHarpoon(void); +0x0042C0F0 0x0344 -R void __cdecl ControlHarpoonBolt(int16_t item_num); +0x0042C440 0x00F0 -R void __cdecl FireRocket(void); +0x0042C530 0x03FD -R void __cdecl ControlRocket(int16_t item_num); +0x0042C930 0x0166 -R void __cdecl draw_shotgun(int32_t weapon_type); +0x0042CAA0 0x0104 -R void __cdecl undraw_shotgun(int32_t weapon_type); +0x0042CBB0 0x037E -R void __cdecl AnimateShotgun(int32_t weapon_type); # game/lara2gun.c -0042CF60 0000004F -R void __cdecl set_arm_info(LARA_ARM *arm, int32_t frame); -0042CFB0 0000007C -R void __cdecl draw_pistols(int32_t weapon_type); -0042D030 00000225 -R void __cdecl undraw_pistols(int32_t weapon_type); -0042D260 0000005C -R void __cdecl ready_pistols(int32_t weapon_type); -0042D2C0 0000004E -R void __cdecl draw_pistol_meshes(int32_t weapon_type); -0042D310 0000003A -R void __cdecl undraw_pistol_mesh_left(int32_t weapon_type); -0042D350 0000003A -R void __cdecl undraw_pistol_mesh_right(int32_t weapon_type); -0042D390 0000018C -R void __cdecl PistolHandler(int32_t weapon_type); -0042D520 00000330 -R void __cdecl AnimatePistols(int32_t weapon_type); +0x0042CF60 0x004F -R void __cdecl set_arm_info(LARA_ARM *arm, int32_t frame); +0x0042CFB0 0x007C -R void __cdecl draw_pistols(int32_t weapon_type); +0x0042D030 0x0225 -R void __cdecl undraw_pistols(int32_t weapon_type); +0x0042D260 0x005C -R void __cdecl ready_pistols(int32_t weapon_type); +0x0042D2C0 0x004E -R void __cdecl draw_pistol_meshes(int32_t weapon_type); +0x0042D310 0x003A -R void __cdecl undraw_pistol_mesh_left(int32_t weapon_type); +0x0042D350 0x003A -R void __cdecl undraw_pistol_mesh_right(int32_t weapon_type); +0x0042D390 0x018C -R void __cdecl PistolHandler(int32_t weapon_type); +0x0042D520 0x0330 -R void __cdecl AnimatePistols(int32_t weapon_type); # game/laraclimb.c -0042D850 00000035 + void __cdecl Lara_State_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -0042D890 00000035 + void __cdecl Lara_State_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); -0042D8D0 00000075 + void __cdecl Lara_State_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -0042D950 00000014 + void __cdecl Lara_State_Climbing(ITEM_INFO *item, COLL_INFO *coll); -0042D970 0000001E + void __cdecl Lara_State_ClimbEnd(ITEM_INFO *item, COLL_INFO *coll); -0042D990 00000014 + void __cdecl Lara_State_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -0042D9B0 0000005D + void __cdecl Lara_Col_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); -0042DA10 00000059 + void __cdecl Lara_Col_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); -0042DA70 0000020D + void __cdecl Lara_Col_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); -0042DC80 0000014D + void __cdecl Lara_Col_Climbing(ITEM_INFO *item, COLL_INFO *coll); -0042DDD0 0000019C + void __cdecl Lara_Col_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); -0042DF70 000000AA + int32_t __cdecl Lara_CheckForLetGo(ITEM_INFO *item, COLL_INFO *coll); -0042E020 00000263 - int32_t __cdecl Lara_TestClimb(int32_t x, int32_t y, int32_t z, int32_t xfront, int32_t zfront, int32_t item_height, int16_t item_room, int32_t *shift); -0042E290 000000BC - int32_t __cdecl Lara_TestClimbPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); -0042E360 000000EF - void __cdecl Lara_DoClimbLeftRight(ITEM_INFO *item, COLL_INFO *coll, int32_t result, int32_t shift); -0042E450 00000235 - int32_t __cdecl Lara_TestClimbUpPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); +0x0042D850 0x0035 + void __cdecl Lara_State_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); +0x0042D890 0x0035 + void __cdecl Lara_State_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); +0x0042D8D0 0x0075 + void __cdecl Lara_State_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); +0x0042D950 0x0014 + void __cdecl Lara_State_Climbing(ITEM_INFO *item, COLL_INFO *coll); +0x0042D970 0x001E + void __cdecl Lara_State_ClimbEnd(ITEM_INFO *item, COLL_INFO *coll); +0x0042D990 0x0014 + void __cdecl Lara_State_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); +0x0042D9B0 0x005D + void __cdecl Lara_Col_ClimbLeft(ITEM_INFO *item, COLL_INFO *coll); +0x0042DA10 0x0059 + void __cdecl Lara_Col_ClimbRight(ITEM_INFO *item, COLL_INFO *coll); +0x0042DA70 0x020D + void __cdecl Lara_Col_ClimbStance(ITEM_INFO *item, COLL_INFO *coll); +0x0042DC80 0x014D + void __cdecl Lara_Col_Climbing(ITEM_INFO *item, COLL_INFO *coll); +0x0042DDD0 0x019C + void __cdecl Lara_Col_ClimbDown(ITEM_INFO *item, COLL_INFO *coll); +0x0042DF70 0x00AA + int32_t __cdecl Lara_CheckForLetGo(ITEM_INFO *item, COLL_INFO *coll); +0x0042E020 0x0263 - int32_t __cdecl Lara_TestClimb(int32_t x, int32_t y, int32_t z, int32_t xfront, int32_t zfront, int32_t item_height, int16_t item_room, int32_t *shift); +0x0042E290 0x00BC - int32_t __cdecl Lara_TestClimbPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t origin, int32_t height, int32_t *shift); +0x0042E360 0x00EF - void __cdecl Lara_DoClimbLeftRight(ITEM_INFO *item, COLL_INFO *coll, int32_t result, int32_t shift); +0x0042E450 0x0235 - int32_t __cdecl Lara_TestClimbUpPos(ITEM_INFO *item, int32_t front, int32_t right, int32_t *shift, int32_t *ledge); # game/larafire.c -0042E6A0 000004E8 -R void __cdecl LaraGun(void); -0042EC10 0000003B -R int32_t __cdecl CheckForHoldingState(int32_t state); -0042EC50 0000011C -R void __cdecl InitialiseNewWeapon(void); -0042ED90 00000194 -R void __cdecl LaraTargetInfo(WEAPON_INFO *winfo); -0042EF30 0000021C -R void __cdecl LaraGetNewTarget(WEAPON_INFO *winfo); -0042F150 000000AA -R void __cdecl find_target_point(ITEM_INFO *item, GAME_VECTOR *target); -0042F200 000000C1 -R void __cdecl AimWeapon(WEAPON_INFO *winfo, LARA_ARM *arm); -0042F2D0 00000360 -R int32_t __cdecl FireWeapon(int32_t weapon_type, ITEM_INFO *target, ITEM_INFO *src, PHD_ANGLE *angles); -0042F640 00000096 -R void __cdecl HitTarget(ITEM_INFO *item, GAME_VECTOR *hitpos, int32_t damage); -0042F6E0 00000051 -R void __cdecl SmashItem(int16_t item_num, int32_t weapon_type); -0042F740 0000003B -R int32_t __cdecl WeaponObject(int32_t weapon_type); +0x0042E6A0 0x04E8 -R void __cdecl LaraGun(void); +0x0042EC10 0x003B -R int32_t __cdecl CheckForHoldingState(int32_t state); +0x0042EC50 0x011C -R void __cdecl InitialiseNewWeapon(void); +0x0042ED90 0x0194 -R void __cdecl LaraTargetInfo(WEAPON_INFO *winfo); +0x0042EF30 0x021C -R void __cdecl LaraGetNewTarget(WEAPON_INFO *winfo); +0x0042F150 0x00AA -R void __cdecl find_target_point(ITEM_INFO *item, GAME_VECTOR *target); +0x0042F200 0x00C1 -R void __cdecl AimWeapon(WEAPON_INFO *winfo, LARA_ARM *arm); +0x0042F2D0 0x0360 -R int32_t __cdecl FireWeapon(int32_t weapon_type, ITEM_INFO *target, ITEM_INFO *src, PHD_ANGLE *angles); +0x0042F640 0x0096 -R void __cdecl HitTarget(ITEM_INFO *item, GAME_VECTOR *hitpos, int32_t damage); +0x0042F6E0 0x0051 -R void __cdecl SmashItem(int16_t item_num, int32_t weapon_type); +0x0042F740 0x003B -R int32_t __cdecl WeaponObject(int32_t weapon_type); # game/laraflare.c -0042F7A0 0000009D -R int32_t __cdecl DoFlareLight(XYZ_32 *pos, int32_t flare_age); -0042F840 000000D3 -R void __cdecl DoFlareInHand(int32_t flare_age); -0042F920 000000F8 -R void __cdecl DrawFlareInAir(ITEM_INFO *item); -0042FA20 000001D7 -R void __cdecl CreateFlare(int32_t thrown); -0042FC00 0000004B -R void __cdecl set_flare_arm(int32_t frame); -0042FC50 00000169 -R void __cdecl draw_flare(void); -0042FDC0 00000221 -R void __cdecl undraw_flare(void); -0042FFF0 00000018 -R void __cdecl draw_flare_meshes(void); -00430010 00000018 -R void __cdecl undraw_flare_meshes(void); -00430030 0000003E -R void __cdecl ready_flare(void); -00430070 0000026E -R void __cdecl FlareControl(int16_t item_num); +0x0042F7A0 0x009D -R int32_t __cdecl DoFlareLight(XYZ_32 *pos, int32_t flare_age); +0x0042F840 0x00D3 -R void __cdecl DoFlareInHand(int32_t flare_age); +0x0042F920 0x00F8 -R void __cdecl DrawFlareInAir(ITEM_INFO *item); +0x0042FA20 0x01D7 -R void __cdecl CreateFlare(int32_t thrown); +0x0042FC00 0x004B -R void __cdecl set_flare_arm(int32_t frame); +0x0042FC50 0x0169 -R void __cdecl draw_flare(void); +0x0042FDC0 0x0221 -R void __cdecl undraw_flare(void); +0x0042FFF0 0x0018 -R void __cdecl draw_flare_meshes(void); +0x00430010 0x0018 -R void __cdecl undraw_flare_meshes(void); +0x00430030 0x003E -R void __cdecl ready_flare(void); +0x00430070 0x026E -R void __cdecl FlareControl(int16_t item_num); # game/laramisc.c -004302E0 00000668 - void __cdecl Lara_Control(int16_t item_num); -00430970 000002CD - void __cdecl Lara_Animate(ITEM_INFO *item); -00430C70 0000013F - void __cdecl Lara_UseItem(int16_t object_num); -00430E30 000000BA - void __cdecl Lara_CheatGetStuff(void); -00430EF0 0000001B - void __cdecl Lara_ControlExtra(int16_t item_num); -00430F10 00000021 - void __cdecl Lara_InitialiseLoad(int16_t item_num); -00430F40 000002BD - void __cdecl Lara_Initialise(int32_t type); -00431200 0000036C - void __cdecl Lara_InitialiseInventory(int32_t level_num); -00431570 000000FA - void __cdecl Lara_InitialiseMeshes(int32_t level_num); +0x004302E0 0x0668 - void __cdecl Lara_Control(int16_t item_num); +0x00430970 0x02CD - void __cdecl Lara_Animate(ITEM_INFO *item); +0x00430C70 0x013F - void __cdecl Lara_UseItem(int16_t object_num); +0x00430E30 0x00BA - void __cdecl Lara_CheatGetStuff(void); +0x00430EF0 0x001B - void __cdecl Lara_ControlExtra(int16_t item_num); +0x00430F10 0x0021 - void __cdecl Lara_InitialiseLoad(int16_t item_num); +0x00430F40 0x02BD - void __cdecl Lara_Initialise(int32_t type); +0x00431200 0x036C - void __cdecl Lara_InitialiseInventory(int32_t level_num); +0x00431570 0x00FA - void __cdecl Lara_InitialiseMeshes(int32_t level_num); # game/larasurf.c -00431670 00000158 + void __cdecl Lara_HandleSurface(ITEM_INFO *item, COLL_INFO *coll); -004317D0 00000070 + void __cdecl Lara_State_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); -00431840 0000005E + void __cdecl Lara_State_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -004318A0 00000060 + void __cdecl Lara_State_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -00431900 00000060 + void __cdecl Lara_State_SurfRight(ITEM_INFO *item, COLL_INFO *coll); -00431960 000000EB + void __cdecl Lara_State_SurfTread(ITEM_INFO *item, COLL_INFO *coll); -00431A50 00000032 + void __cdecl Lara_Col_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); -00431A90 00000023 + void __cdecl Lara_Col_SurfBack(ITEM_INFO *item, COLL_INFO *coll); -00431AC0 00000023 + void __cdecl Lara_Col_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); -00431AF0 00000023 + void __cdecl Lara_Col_SurfRight(ITEM_INFO *item, COLL_INFO *coll); -00431B20 0000001E + void __cdecl Lara_Col_SurfTread(ITEM_INFO *item, COLL_INFO *coll); -00431B40 000000F3 + void __cdecl Lara_SurfaceCollision(ITEM_INFO *item, COLL_INFO *coll); -00431C40 000000E7 + int32_t __cdecl Lara_TestWaterStepOut(ITEM_INFO *item, COLL_INFO *coll); -00431D30 0000021C + int32_t __cdecl Lara_TestWaterClimbOut(ITEM_INFO *item, COLL_INFO *coll); +0x00431670 0x0158 + void __cdecl Lara_HandleSurface(ITEM_INFO *item, COLL_INFO *coll); +0x004317D0 0x0070 + void __cdecl Lara_State_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); +0x00431840 0x005E + void __cdecl Lara_State_SurfBack(ITEM_INFO *item, COLL_INFO *coll); +0x004318A0 0x0060 + void __cdecl Lara_State_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); +0x00431900 0x0060 + void __cdecl Lara_State_SurfRight(ITEM_INFO *item, COLL_INFO *coll); +0x00431960 0x00EB + void __cdecl Lara_State_SurfTread(ITEM_INFO *item, COLL_INFO *coll); +0x00431A50 0x0032 + void __cdecl Lara_Col_SurfSwim(ITEM_INFO *item, COLL_INFO *coll); +0x00431A90 0x0023 + void __cdecl Lara_Col_SurfBack(ITEM_INFO *item, COLL_INFO *coll); +0x00431AC0 0x0023 + void __cdecl Lara_Col_SurfLeft(ITEM_INFO *item, COLL_INFO *coll); +0x00431AF0 0x0023 + void __cdecl Lara_Col_SurfRight(ITEM_INFO *item, COLL_INFO *coll); +0x00431B20 0x001E + void __cdecl Lara_Col_SurfTread(ITEM_INFO *item, COLL_INFO *coll); +0x00431B40 0x00F3 + void __cdecl Lara_SurfaceCollision(ITEM_INFO *item, COLL_INFO *coll); +0x00431C40 0x00E7 + int32_t __cdecl Lara_TestWaterStepOut(ITEM_INFO *item, COLL_INFO *coll); +0x00431D30 0x021C + int32_t __cdecl Lara_TestWaterClimbOut(ITEM_INFO *item, COLL_INFO *coll); # game/laraswim.c -00431F50 00000223 + void __cdecl Lara_HandleUnderwater(ITEM_INFO *item, COLL_INFO *coll); -00432180 00000086 + void __cdecl Lara_SwimTurn(ITEM_INFO *item); -00432210 0000006B + void __cdecl Lara_State_Swim(ITEM_INFO *item, COLL_INFO *coll); -00432280 00000076 + void __cdecl Lara_State_Glide(ITEM_INFO *item, COLL_INFO *coll); -00432300 00000085 + void __cdecl Lara_State_Tread(ITEM_INFO *item, COLL_INFO *coll); -00432390 00000014 + void __cdecl Lara_State_Dive(ITEM_INFO *item, COLL_INFO *coll); -004323B0 00000053 + void __cdecl Lara_State_UWDeath(ITEM_INFO *item, COLL_INFO *coll); -00432410 0000000B + void __cdecl Lara_State_UWTwist(ITEM_INFO *item, COLL_INFO *coll); -00432420 00000013 + void __cdecl Lara_Col_Swim(ITEM_INFO *item, COLL_INFO *coll); -00432440 0000005B + void __cdecl Lara_Col_UWDeath(ITEM_INFO *item, COLL_INFO *coll); -004324A0 00000192 - int32_t __cdecl Lara_GetWaterDepth(int32_t x, int32_t y, int32_t z, int16_t room_num); -00432640 000000CE - void __cdecl Lara_TestWaterDepth(ITEM_INFO *item, COLL_INFO *coll); -00432710 0000015C - void __cdecl Lara_SwimCollision(ITEM_INFO *item, COLL_INFO *coll); -00432870 000001EC - void __cdecl Lara_WaterCurrent(COLL_INFO *coll); +0x00431F50 0x0223 + void __cdecl Lara_HandleUnderwater(ITEM_INFO *item, COLL_INFO *coll); +0x00432180 0x0086 + void __cdecl Lara_SwimTurn(ITEM_INFO *item); +0x00432210 0x006B + void __cdecl Lara_State_Swim(ITEM_INFO *item, COLL_INFO *coll); +0x00432280 0x0076 + void __cdecl Lara_State_Glide(ITEM_INFO *item, COLL_INFO *coll); +0x00432300 0x0085 + void __cdecl Lara_State_Tread(ITEM_INFO *item, COLL_INFO *coll); +0x00432390 0x0014 + void __cdecl Lara_State_Dive(ITEM_INFO *item, COLL_INFO *coll); +0x004323B0 0x0053 + void __cdecl Lara_State_UWDeath(ITEM_INFO *item, COLL_INFO *coll); +0x00432410 0x000B + void __cdecl Lara_State_UWTwist(ITEM_INFO *item, COLL_INFO *coll); +0x00432420 0x0013 + void __cdecl Lara_Col_Swim(ITEM_INFO *item, COLL_INFO *coll); +0x00432440 0x005B + void __cdecl Lara_Col_UWDeath(ITEM_INFO *item, COLL_INFO *coll); +0x004324A0 0x0192 - int32_t __cdecl Lara_GetWaterDepth(int32_t x, int32_t y, int32_t z, int16_t room_num); +0x00432640 0x00CE - void __cdecl Lara_TestWaterDepth(ITEM_INFO *item, COLL_INFO *coll); +0x00432710 0x015C - void __cdecl Lara_SwimCollision(ITEM_INFO *item, COLL_INFO *coll); +0x00432870 0x01EC - void __cdecl Lara_WaterCurrent(COLL_INFO *coll); # game/lot.c -00432A60 00000053 -R void __cdecl InitialiseLOTarray(void); -00432AC0 0000004F -R void __cdecl DisableBaddieAI(int16_t item_num); -00432B10 000001B0 - int32_t __cdecl LOT_EnableBaddieAI(int16_t item_num, int32_t always); -00432CC0 00000106 -R void __cdecl InitialiseSlot(int16_t item_num, int32_t slot); -00432ED0 000000B8 -R void __cdecl CreateZone(ITEM_INFO *item); -00432F90 00000049 -R void __cdecl ClearLOT(LOT_INFO *LOT); +0x00432A60 0x0053 -R void __cdecl InitialiseLOTarray(void); +0x00432AC0 0x004F -R void __cdecl DisableBaddieAI(int16_t item_num); +0x00432B10 0x01B0 - int32_t __cdecl LOT_EnableBaddieAI(int16_t item_num, int32_t always); +0x00432CC0 0x0106 -R void __cdecl InitialiseSlot(int16_t item_num, int32_t slot); +0x00432ED0 0x00B8 -R void __cdecl CreateZone(ITEM_INFO *item); +0x00432F90 0x0049 -R void __cdecl ClearLOT(LOT_INFO *LOT); # game/missile.c -00432FE0 000002D0 -R void __cdecl ControlMissile(int16_t fx_num); -004332B0 000000A7 -R void __cdecl ShootAtLara(FX_INFO *fx); -00433360 00000386 - int32_t __cdecl Effect_ExplodingDeath(int16_t item_num, int32_t mesh_bits, int16_t damage); -004336F0 00000200 -R void __cdecl ControlBodyPart(int16_t fx_num); +0x00432FE0 0x02D0 -R void __cdecl ControlMissile(int16_t fx_num); +0x004332B0 0x00A7 -R void __cdecl ShootAtLara(FX_INFO *fx); +0x00433360 0x0386 - int32_t __cdecl Effect_ExplodingDeath(int16_t item_num, int32_t mesh_bits, int16_t damage); +0x004336F0 0x0200 -R void __cdecl ControlBodyPart(int16_t fx_num); # game/moveblock.c -004338F0 0000002C -R void __cdecl InitialiseMovingBlock(int16_t item_num); -00433920 00000148 -R void __cdecl MovableBlock(int16_t item_num); -00433A70 00000239 -R void __cdecl MovableBlockCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00433CD0 0000004E -R int32_t __cdecl TestBlockMovable(ITEM_INFO *item, int32_t block_height); -00433D20 00000137 -R int32_t __cdecl TestBlockPush(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); -00433E70 00000225 -R int32_t __cdecl TestBlockPull(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); -004340B0 000000BB -R void __cdecl AlterFloorHeight(ITEM_INFO *item, int32_t height); -00434170 00000022 -R void __cdecl DrawMovableBlock(ITEM_INFO *item); -004341A0 0000006B -R void __cdecl DrawUnclippedItem(ITEM_INFO *item); +0x004338F0 0x002C -R void __cdecl InitialiseMovingBlock(int16_t item_num); +0x00433920 0x0148 -R void __cdecl MovableBlock(int16_t item_num); +0x00433A70 0x0239 -R void __cdecl MovableBlockCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00433CD0 0x004E -R int32_t __cdecl TestBlockMovable(ITEM_INFO *item, int32_t block_height); +0x00433D20 0x0137 -R int32_t __cdecl TestBlockPush(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); +0x00433E70 0x0225 -R int32_t __cdecl TestBlockPull(ITEM_INFO *item, int32_t block_height, uint16_t quadrant); +0x004340B0 0x00BB -R void __cdecl AlterFloorHeight(ITEM_INFO *item, int32_t height); +0x00434170 0x0022 -R void __cdecl DrawMovableBlock(ITEM_INFO *item); +0x004341A0 0x006B -R void __cdecl DrawUnclippedItem(ITEM_INFO *item); # game/objects.c -00434210 000000DB -R void __cdecl EarthQuake(int16_t item_num); -004342F0 0000003C -R void __cdecl ControlCutShotgun(int16_t item_num); -00434330 0000009D -R void __cdecl InitialiseFinalLevel(void); -00434400 0000020F -R void __cdecl FinalLevelCounter(int16_t item_num); -00434610 000000D9 -R void __cdecl MiniCopterControl(int16_t item_num); -004346F0 0000007C -R void __cdecl InitialiseDyingMonk(int16_t item_num); -00434770 00000087 -R void __cdecl DyingMonk(int16_t item_num); -00434800 000000BD -R void __cdecl ControlGongBonger(int16_t item_num); -004348C0 000000BF -R void __cdecl DeathSlideCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00434980 0000028F -R void __cdecl ControlDeathSlide(int16_t item_num); -00434C10 000000E3 -R void __cdecl BigBowlControl(int16_t item_num); -00434D00 0000007E -R void __cdecl BellControl(int16_t item_num); -00434D80 00000075 -R void __cdecl InitialiseWindow(int16_t item_num); -00434E00 000000C4 -R void __cdecl SmashWindow(int16_t item_num); -00434ED0 00000096 -R void __cdecl WindowControl(int16_t item_num); -00434F70 000000DC -R void __cdecl SmashIceControl(int16_t item_num); -00435050 00000042 -R void __cdecl ShutThatDoor(DOORPOS_DATA *d); -004350A0 00000032 -R void __cdecl OpenThatDoor(DOORPOS_DATA *d); -004350E0 000003DC -R void __cdecl InitialiseDoor(int16_t item_num); -004354C0 000000C8 -R void __cdecl DoorControl(int16_t item_num); -00435590 000000B1 -R int32_t __cdecl OnDrawBridge(ITEM_INFO *item, int32_t x, int32_t y); -00435650 00000036 -R void __cdecl DrawBridgeFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00435690 0000003B -R void __cdecl DrawBridgeCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -004356D0 0000002C -R void __cdecl DrawBridgeCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00435700 00000035 -R void __cdecl InitialiseLift(int16_t item_num); -00435740 000000D4 -R void __cdecl LiftControl(int16_t item_num); -00435820 00000179 -R void __cdecl LiftFloorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling); -004359A0 00000035 -R void __cdecl LiftFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -004359E0 00000035 -R void __cdecl LiftCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00435A20 00000016 -R void __cdecl BridgeFlatFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00435A40 0000001B -R void __cdecl BridgeFlatCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00435A60 0000003B -R int32_t __cdecl GetOffset(ITEM_INFO *item, int32_t x, int32_t z); -00435AA0 00000030 -R void __cdecl BridgeTilt1Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00435AD0 00000035 -R void __cdecl BridgeTilt1Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00435B10 0000002F -R void __cdecl BridgeTilt2Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00435B40 00000034 -R void __cdecl BridgeTilt2Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00435B80 0000010C -R void __cdecl CopterControl(int16_t item_num); -00435C90 000000D2 -R void __cdecl GeneralControl(int16_t item_num); -00435D70 0000008D -R void __cdecl DetonatorControl(int16_t item_num); +0x00434210 0x00DB -R void __cdecl EarthQuake(int16_t item_num); +0x004342F0 0x003C -R void __cdecl ControlCutShotgun(int16_t item_num); +0x00434330 0x009D -R void __cdecl InitialiseFinalLevel(void); +0x00434400 0x020F -R void __cdecl FinalLevelCounter(int16_t item_num); +0x00434610 0x00D9 -R void __cdecl MiniCopterControl(int16_t item_num); +0x004346F0 0x007C -R void __cdecl InitialiseDyingMonk(int16_t item_num); +0x00434770 0x0087 -R void __cdecl DyingMonk(int16_t item_num); +0x00434800 0x00BD -R void __cdecl ControlGongBonger(int16_t item_num); +0x004348C0 0x00BF -R void __cdecl DeathSlideCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00434980 0x028F -R void __cdecl ControlDeathSlide(int16_t item_num); +0x00434C10 0x00E3 -R void __cdecl BigBowlControl(int16_t item_num); +0x00434D00 0x007E -R void __cdecl BellControl(int16_t item_num); +0x00434D80 0x0075 -R void __cdecl InitialiseWindow(int16_t item_num); +0x00434E00 0x00C4 -R void __cdecl SmashWindow(int16_t item_num); +0x00434ED0 0x0096 -R void __cdecl WindowControl(int16_t item_num); +0x00434F70 0x00DC -R void __cdecl SmashIceControl(int16_t item_num); +0x00435050 0x0042 -R void __cdecl ShutThatDoor(DOORPOS_DATA *d); +0x004350A0 0x0032 -R void __cdecl OpenThatDoor(DOORPOS_DATA *d); +0x004350E0 0x03DC -R void __cdecl InitialiseDoor(int16_t item_num); +0x004354C0 0x00C8 -R void __cdecl DoorControl(int16_t item_num); +0x00435590 0x00B1 -R int32_t __cdecl OnDrawBridge(ITEM_INFO *item, int32_t x, int32_t y); +0x00435650 0x0036 -R void __cdecl DrawBridgeFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435690 0x003B -R void __cdecl DrawBridgeCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x004356D0 0x002C -R void __cdecl DrawBridgeCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00435700 0x0035 -R void __cdecl InitialiseLift(int16_t item_num); +0x00435740 0x00D4 -R void __cdecl LiftControl(int16_t item_num); +0x00435820 0x0179 -R void __cdecl LiftFloorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *floor, int32_t *ceiling); +0x004359A0 0x0035 -R void __cdecl LiftFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x004359E0 0x0035 -R void __cdecl LiftCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435A20 0x0016 -R void __cdecl BridgeFlatFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435A40 0x001B -R void __cdecl BridgeFlatCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435A60 0x003B -R int32_t __cdecl GetOffset(ITEM_INFO *item, int32_t x, int32_t z); +0x00435AA0 0x0030 -R void __cdecl BridgeTilt1Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435AD0 0x0035 -R void __cdecl BridgeTilt1Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435B10 0x002F -R void __cdecl BridgeTilt2Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435B40 0x0034 -R void __cdecl BridgeTilt2Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00435B80 0x010C -R void __cdecl CopterControl(int16_t item_num); +0x00435C90 0x00D2 -R void __cdecl GeneralControl(int16_t item_num); +0x00435D70 0x008D -R void __cdecl DetonatorControl(int16_t item_num); # game/people.c -00435E00 00000085 -R int32_t __cdecl Targetable(ITEM_INFO *item, AI_INFO *info); -00435E90 0000003B -R void __cdecl ControlGlow(int16_t fx_num); -00435ED0 0000004E -R void __cdecl ControlGunShot(int16_t fx_num); -00435F20 00000066 -R int16_t __cdecl GunShot(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -00435F90 000000B9 -R int16_t __cdecl GunHit(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -00436050 000000A7 -R int16_t __cdecl GunMiss(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); -00436100 000001C4 -R int32_t __cdecl ShotLara(ITEM_INFO *item, AI_INFO *info, BITE_INFO *gun, int16_t extra_rotation, int32_t damage); -004362D0 00000043 -R void __cdecl InitialiseCult1(int16_t item_num); -00436320 00000401 -R void __cdecl Cult1Control(int16_t item_num); -00436750 00000050 -R void __cdecl InitialiseCult3(int16_t item_num); -004367A0 0000053C -R void __cdecl Cult3Control(int16_t item_num); -00436D10 000003CA -R void __cdecl Worker1Control(int16_t item_num); -00437110 0000042A -R void __cdecl Worker2Control(int16_t item_num); -00437570 0000030B -R void __cdecl BanditControl(int16_t item_num); -004378B0 00000408 -R void __cdecl Bandit2Control(int16_t item_num); -00437CF0 00000172 -R void __cdecl WinstonControl(int16_t item_num); +0x00435E00 0x0085 -R int32_t __cdecl Targetable(ITEM_INFO *item, AI_INFO *info); +0x00435E90 0x003B -R void __cdecl ControlGlow(int16_t fx_num); +0x00435ED0 0x004E -R void __cdecl ControlGunShot(int16_t fx_num); +0x00435F20 0x0066 -R int16_t __cdecl GunShot(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); +0x00435F90 0x00B9 -R int16_t __cdecl GunHit(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); +0x00436050 0x00A7 -R int16_t __cdecl GunMiss(int32_t x, int32_t y, int32_t z, int16_t speed, PHD_ANGLE yrot, int16_t room_num); +0x00436100 0x01C4 -R int32_t __cdecl ShotLara(ITEM_INFO *item, AI_INFO *info, BITE_INFO *gun, int16_t extra_rotation, int32_t damage); +0x004362D0 0x0043 -R void __cdecl InitialiseCult1(int16_t item_num); +0x00436320 0x0401 -R void __cdecl Cult1Control(int16_t item_num); +0x00436750 0x0050 -R void __cdecl InitialiseCult3(int16_t item_num); +0x004367A0 0x053C -R void __cdecl Cult3Control(int16_t item_num); +0x00436D10 0x03CA -R void __cdecl Worker1Control(int16_t item_num); +0x00437110 0x042A -R void __cdecl Worker2Control(int16_t item_num); +0x00437570 0x030B -R void __cdecl BanditControl(int16_t item_num); +0x004378B0 0x0408 -R void __cdecl Bandit2Control(int16_t item_num); +0x00437CF0 0x0172 -R void __cdecl WinstonControl(int16_t item_num); # game/pickup.c -00437E70 00000480 -R void __cdecl PickUpCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -004382F0 0000020A -R void __cdecl SwitchCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00438500 000000FC -R void __cdecl SwitchCollision2(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00438600 0000023B -R void __cdecl DetonatorCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00438840 00000223 -R void __cdecl KeyHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00438A80 00000294 -R void __cdecl PuzzleHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); -00438D40 00000039 -R void __cdecl SwitchControl(int16_t item_num); -00438D80 000000BD -R int32_t __cdecl SwitchTrigger(int16_t item_num, int16_t timer); -00438E40 0000003D -R int32_t __cdecl KeyTrigger(int16_t item_num); -00438E80 00000033 -R int32_t __cdecl PickupTrigger(int16_t item_num); -00438EC0 00000023 -R void __cdecl SecretControl(int16_t item_num); +0x00437E70 0x0480 -R void __cdecl PickUpCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x004382F0 0x020A -R void __cdecl SwitchCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00438500 0x00FC -R void __cdecl SwitchCollision2(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00438600 0x023B -R void __cdecl DetonatorCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00438840 0x0223 -R void __cdecl KeyHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00438A80 0x0294 -R void __cdecl PuzzleHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x00438D40 0x0039 -R void __cdecl SwitchControl(int16_t item_num); +0x00438D80 0x00BD -R int32_t __cdecl SwitchTrigger(int16_t item_num, int16_t timer); +0x00438E40 0x003D -R int32_t __cdecl KeyTrigger(int16_t item_num); +0x00438E80 0x0033 -R int32_t __cdecl PickupTrigger(int16_t item_num); +0x00438EC0 0x0023 -R void __cdecl SecretControl(int16_t item_num); # game/rat.c -00438EF0 000001DC -R void __cdecl MouseControl(int16_t item_num); +0x00438EF0 0x01DC -R void __cdecl MouseControl(int16_t item_num); # game/savegame.c -004390E0 00000062 *R void __cdecl InitialiseStartInfo(void); -00439150 000000DB -R void __cdecl ModifyStartInfo(int32_t level_num); -00439230 00000201 -R void __cdecl CreateStartInfo(int32_t level_num); -00439440 0000052B -R void __cdecl CreateSaveGameInfo(void); -00439970 0000085C -R void __cdecl ExtractSaveGameInfo(void); -0043A1D0 00000015 -R void __cdecl ResetSG(void); -0043A1F0 0000004C -R void __cdecl WriteSG(void *pointer, int32_t size); -0043A240 00000035 -R void __cdecl ReadSG(void *pointer, int32_t size); +0x004390E0 0x0062 *R void __cdecl InitialiseStartInfo(void); +0x00439150 0x00DB -R void __cdecl ModifyStartInfo(int32_t level_num); +0x00439230 0x0201 -R void __cdecl CreateStartInfo(int32_t level_num); +0x00439440 0x052B -R void __cdecl CreateSaveGameInfo(void); +0x00439970 0x085C -R void __cdecl ExtractSaveGameInfo(void); +0x0043A1D0 0x0015 -R void __cdecl ResetSG(void); +0x0043A1F0 0x004C -R void __cdecl WriteSG(void *pointer, int32_t size); +0x0043A240 0x0035 -R void __cdecl ReadSG(void *pointer, int32_t size); # game/setup.c -0043A280 0000015F - int32_t __cdecl Level_Initialise(int32_t level_num, int32_t level_type); -0043A3E0 00000061 -R void __cdecl InitialiseGameFlags(void); -0043A450 00000027 -R void __cdecl InitialiseLevelFlags(void); -0043A480 0000103B -R void __cdecl BaddyObjects(void); -0043B4C0 000005FD -R void __cdecl TrapObjects(void); -0043BAC0 00000C4C -R void __cdecl ObjectObjects(void); -0043C710 00000068 -R void __cdecl InitialiseObjects(void); -0043C780 000000CE -R void __cdecl GetCarriedItems(void); +0x0043A280 0x015F - int32_t __cdecl Level_Initialise(int32_t level_num, int32_t level_type); +0x0043A3E0 0x0061 -R void __cdecl InitialiseGameFlags(void); +0x0043A450 0x0027 -R void __cdecl InitialiseLevelFlags(void); +0x0043A480 0x103B -R void __cdecl BaddyObjects(void); +0x0043B4C0 0x05FD -R void __cdecl TrapObjects(void); +0x0043BAC0 0x0C4C -R void __cdecl ObjectObjects(void); +0x0043C710 0x0068 -R void __cdecl InitialiseObjects(void); +0x0043C780 0x00CE -R void __cdecl GetCarriedItems(void); # game/shark.c -0043C850 00000116 -R void __cdecl JellyControl(int16_t item_num); -0043C970 0000021B -R void __cdecl BaracuddaControl(int16_t item_num); -0043CBA0 0000027C -R void __cdecl SharkControl(int16_t item_num); +0x0043C850 0x0116 -R void __cdecl JellyControl(int16_t item_num); +0x0043C970 0x021B -R void __cdecl BaracuddaControl(int16_t item_num); +0x0043CBA0 0x027C -R void __cdecl SharkControl(int16_t item_num); # game/skidoo.c -0043CE30 00000040 -R void __cdecl InitialiseSkidoo(int16_t item_num); -0043CE70 000000E1 -R int32_t __cdecl SkidooCheckGeton(int16_t item_num, COLL_INFO *coll); -0043CF60 000000F8 -R void __cdecl SkidooCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); -0043D060 000001F9 -R void __cdecl SkidooBaddieCollision(ITEM_INFO *skidoo); -0043D260 000000B2 -R int32_t __cdecl TestHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); -0043D320 0000027C -R int32_t __cdecl DoShift(ITEM_INFO *skidoo, XYZ_32 *pos, XYZ_32 *old); -0043D5A0 00000054 -R int32_t __cdecl DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); -0043D600 00000090 -R int32_t __cdecl GetCollisionAnim(ITEM_INFO *skidoo, XYZ_32 *moved); -0043D690 00000140 -R void __cdecl DoSnowEffect(ITEM_INFO *skidoo); -0043D7D0 0000049E -R int32_t __cdecl SkidooDynamics(ITEM_INFO *skidoo); -0043DC70 000001B6 -R int32_t __cdecl SkidooUserControl(ITEM_INFO *skidoo, int32_t height, int32_t *pitch); -0043DE30 00000106 -R int32_t __cdecl SkidooCheckGetOffOK(int32_t direction); -0043DF40 000002B9 -R void __cdecl SkidooAnimation(ITEM_INFO *skidoo, int32_t collide, int32_t dead); -0043E220 0000007C -R void __cdecl SkidooExplode(ITEM_INFO *skidoo); -0043E2A0 00000233 -R int32_t __cdecl SkidooCheckGetOff(void); -0043E4E0 0000011B -R void __cdecl SkidooGuns(void); -0043E600 00000440 -R int32_t __cdecl SkidooControl(void); -0043EA60 000002D5 -R void __cdecl DrawSkidoo(ITEM_INFO *item); -0043ED40 0000007F -R void __cdecl InitialiseSkidman(int16_t item_num); -0043EDD0 000003E2 -R void __cdecl SkidManControl(int16_t rider_num); -0043F1D0 00000119 -R void __cdecl SkidmanPush(ITEM_INFO *item, ITEM_INFO *lara_item, int32_t radius); -0043F2F0 00000081 -R void __cdecl SkidmanCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); +0x0043CE30 0x0040 -R void __cdecl InitialiseSkidoo(int16_t item_num); +0x0043CE70 0x00E1 -R int32_t __cdecl SkidooCheckGeton(int16_t item_num, COLL_INFO *coll); +0x0043CF60 0x00F8 -R void __cdecl SkidooCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); +0x0043D060 0x01F9 -R void __cdecl SkidooBaddieCollision(ITEM_INFO *skidoo); +0x0043D260 0x00B2 -R int32_t __cdecl TestHeight(ITEM_INFO *item, int32_t z_off, int32_t x_off, XYZ_32 *pos); +0x0043D320 0x027C -R int32_t __cdecl DoShift(ITEM_INFO *skidoo, XYZ_32 *pos, XYZ_32 *old); +0x0043D5A0 0x0054 -R int32_t __cdecl DoDynamics(int32_t height, int32_t fall_speed, int32_t *y); +0x0043D600 0x0090 -R int32_t __cdecl GetCollisionAnim(ITEM_INFO *skidoo, XYZ_32 *moved); +0x0043D690 0x0140 -R void __cdecl DoSnowEffect(ITEM_INFO *skidoo); +0x0043D7D0 0x049E -R int32_t __cdecl SkidooDynamics(ITEM_INFO *skidoo); +0x0043DC70 0x01B6 -R int32_t __cdecl SkidooUserControl(ITEM_INFO *skidoo, int32_t height, int32_t *pitch); +0x0043DE30 0x0106 -R int32_t __cdecl SkidooCheckGetOffOK(int32_t direction); +0x0043DF40 0x02B9 -R void __cdecl SkidooAnimation(ITEM_INFO *skidoo, int32_t collide, int32_t dead); +0x0043E220 0x007C -R void __cdecl SkidooExplode(ITEM_INFO *skidoo); +0x0043E2A0 0x0233 -R int32_t __cdecl SkidooCheckGetOff(void); +0x0043E4E0 0x011B -R void __cdecl SkidooGuns(void); +0x0043E600 0x0440 -R int32_t __cdecl SkidooControl(void); +0x0043EA60 0x02D5 -R void __cdecl DrawSkidoo(ITEM_INFO *item); +0x0043ED40 0x007F -R void __cdecl InitialiseSkidman(int16_t item_num); +0x0043EDD0 0x03E2 -R void __cdecl SkidManControl(int16_t rider_num); +0x0043F1D0 0x0119 -R void __cdecl SkidmanPush(ITEM_INFO *item, ITEM_INFO *lara_item, int32_t radius); +0x0043F2F0 0x0081 -R void __cdecl SkidmanCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll); # game/sound.c -0043F380 00000031 * int32_t __cdecl Music_GetRealTrack(int32_t track); -0043F3C0 00000484 - void __cdecl Sound_Effect(int32_t sample_id, const XYZ_32 *pos, uint32_t flags); -0043F860 0000005E - void __cdecl Sound_StopEffect(int32_t sample_id); -0043F8C0 00000086 - void __cdecl Sound_UpdateContinued(void); -0043F950 00000024 - void __cdecl Sound_Shutdown(void); -0043F980 0000002A * void __cdecl Sound_Init(void); +0x0043F380 0x0031 * int32_t __cdecl Music_GetRealTrack(int32_t track); +0x0043F3C0 0x0484 - void __cdecl Sound_Effect(int32_t sample_id, const XYZ_32 *pos, uint32_t flags); +0x0043F860 0x005E - void __cdecl Sound_StopEffect(int32_t sample_id); +0x0043F8C0 0x0086 - void __cdecl Sound_UpdateContinued(void); +0x0043F950 0x0024 - void __cdecl Sound_Shutdown(void); +0x0043F980 0x002A * void __cdecl Sound_Init(void); # game/sphere.c -0043F9B0 00000128 -R int32_t __cdecl TestCollision(ITEM_INFO *item, ITEM_INFO *lara_item); -0043FAE0 000002D8 -R int32_t __cdecl GetSpheres(ITEM_INFO *item, SPHERE *ptr, int32_t world_space); -0043FDC0 0000019A - void __cdecl Collide_GetJointAbsPosition(const ITEM_INFO *item, const XYZ_32 *vec, int32_t joint); -0043FF60 0000005D -R void __cdecl BaddieBiteEffect(ITEM_INFO *item, BITE_INFO *bite); +0x0043F9B0 0x0128 -R int32_t __cdecl TestCollision(ITEM_INFO *item, ITEM_INFO *lara_item); +0x0043FAE0 0x02D8 -R int32_t __cdecl GetSpheres(ITEM_INFO *item, SPHERE *ptr, int32_t world_space); +0x0043FDC0 0x019A - void __cdecl Collide_GetJointAbsPosition(const ITEM_INFO *item, const XYZ_32 *vec, int32_t joint); +0x0043FF60 0x005D -R void __cdecl BaddieBiteEffect(ITEM_INFO *item, BITE_INFO *bite); # game/spider.c -0043FFC0 000000AC -R void __cdecl SpiderLeap(int16_t item_num, int16_t angle); -00440070 00000206 -R void __cdecl SpiderControl(int16_t item_num); -00440290 000001A5 -R void __cdecl BigSpiderControl(int16_t item_num); +0x0043FFC0 0x00AC -R void __cdecl SpiderLeap(int16_t item_num, int16_t angle); +0x00440070 0x0206 -R void __cdecl SpiderControl(int16_t item_num); +0x00440290 0x01A5 -R void __cdecl BigSpiderControl(int16_t item_num); # game/text.c -00440450 0000002C + void __cdecl Text_Init(void); -00440480 00000105 + TEXTSTRING *__cdecl Text_Create(int32_t x, int32_t y, int32_t z, const char *text); -00440590 00000037 + void __cdecl Text_ChangeText(TEXTSTRING *string, const char *text); -004405D0 00000017 + void __cdecl Text_SetScale(TEXTSTRING *string, int32_t scale_h, int32_t scale_v); -004405F0 0000002B + void __cdecl Text_Flash(TEXTSTRING *string, int16_t enable, int16_t rate); -00440620 0000008C + void __cdecl Text_AddBackground(TEXTSTRING *string, int16_t x_size, int16_t y_size, int16_t x_off, int16_t y_off, int16_t z_off, int16_t colour, uint16_t *gour_ptr, uint16_t flags); -004406B0 00000010 + void __cdecl Text_RemoveBackground(TEXTSTRING *string); -004406C0 00000029 + void __cdecl Text_AddOutline(TEXTSTRING *string, int16_t enable, int16_t colour, uint16_t *gour_ptr, uint16_t flags); -004406F0 00000010 + void __cdecl Text_RemoveOutline(TEXTSTRING *string); -00440700 0000001E + void __cdecl Text_CentreH(TEXTSTRING *string, int16_t enable); -00440720 0000001E + void __cdecl Text_CentreV(TEXTSTRING *string, int16_t enable); -00440740 0000001E + void __cdecl Text_AlignRight(TEXTSTRING *string, int16_t enable); -00440760 0000001E + void __cdecl Text_AlignBottom(TEXTSTRING *string, int16_t enable); -00440780 00000107 + int32_t __cdecl Text_GetWidth(TEXTSTRING *string); -00440890 00000025 + int32_t __cdecl Text_Remove(TEXTSTRING *string); -004408C0 00000024 + int16_t __cdecl Text_GetTextLength(const char *text); -004408F0 00000027 + void __cdecl Text_Draw(void); -00440920 00000189 + void __cdecl Text_DrawBorder(int32_t x, int32_t y, int32_t z, int32_t width, int32_t height); -00440AB0 000003D2 + void __cdecl Text_DrawText(const TEXTSTRING *string); -00440E90 00000037 + uint32_t __cdecl Text_GetScaleH(uint32_t value); -00440ED0 00000039 + uint32_t __cdecl Text_GetScaleV(uint32_t value); +0x00440450 0x002C + void __cdecl Text_Init(void); +0x00440480 0x0105 + TEXTSTRING *__cdecl Text_Create(int32_t x, int32_t y, int32_t z, const char *text); +0x00440590 0x0037 + void __cdecl Text_ChangeText(TEXTSTRING *string, const char *text); +0x004405D0 0x0017 + void __cdecl Text_SetScale(TEXTSTRING *string, int32_t scale_h, int32_t scale_v); +0x004405F0 0x002B + void __cdecl Text_Flash(TEXTSTRING *string, int16_t enable, int16_t rate); +0x00440620 0x008C + void __cdecl Text_AddBackground(TEXTSTRING *string, int16_t x_size, int16_t y_size, int16_t x_off, int16_t y_off, int16_t z_off, int16_t colour, uint16_t *gour_ptr, uint16_t flags); +0x004406B0 0x0010 + void __cdecl Text_RemoveBackground(TEXTSTRING *string); +0x004406C0 0x0029 + void __cdecl Text_AddOutline(TEXTSTRING *string, int16_t enable, int16_t colour, uint16_t *gour_ptr, uint16_t flags); +0x004406F0 0x0010 + void __cdecl Text_RemoveOutline(TEXTSTRING *string); +0x00440700 0x001E + void __cdecl Text_CentreH(TEXTSTRING *string, int16_t enable); +0x00440720 0x001E + void __cdecl Text_CentreV(TEXTSTRING *string, int16_t enable); +0x00440740 0x001E + void __cdecl Text_AlignRight(TEXTSTRING *string, int16_t enable); +0x00440760 0x001E + void __cdecl Text_AlignBottom(TEXTSTRING *string, int16_t enable); +0x00440780 0x0107 + int32_t __cdecl Text_GetWidth(TEXTSTRING *string); +0x00440890 0x0025 + int32_t __cdecl Text_Remove(TEXTSTRING *string); +0x004408C0 0x0024 + int16_t __cdecl Text_GetTextLength(const char *text); +0x004408F0 0x0027 + void __cdecl Text_Draw(void); +0x00440920 0x0189 + void __cdecl Text_DrawBorder(int32_t x, int32_t y, int32_t z, int32_t width, int32_t height); +0x00440AB0 0x03D2 + void __cdecl Text_DrawText(const TEXTSTRING *string); +0x00440E90 0x0037 + uint32_t __cdecl Text_GetScaleH(uint32_t value); +0x00440ED0 0x0039 + uint32_t __cdecl Text_GetScaleV(uint32_t value); # game/traps.c -00440F10 000001F4 -R void __cdecl MineControl(int16_t mine_num); -00441110 00000138 -R void __cdecl ControlSpikeWall(int16_t item_num); -00441250 00000115 -R void __cdecl ControlCeilingSpikes(int16_t item_num); -00441370 00000086 -R void __cdecl HookControl(int16_t item_num); -00441400 00000190 -R void __cdecl PropellerControl(int16_t item_num); -00441590 0000017B -R void __cdecl SpinningBlade(int16_t item_num); -00441710 000000FE -R void __cdecl IcicleControl(int16_t item_num); -00441810 0000003C -R void __cdecl InitialiseBlade(int16_t item_num); -00441850 00000091 -R void __cdecl BladeControl(int16_t item_num); -004418F0 00000046 -R void __cdecl InitialiseKillerStatue(int16_t item_num); -00441940 00000109 -R void __cdecl KillerStatueControl(int16_t item_num); -00441A50 000000DB -R void __cdecl SpringBoardControl(int16_t item_num); -00441B30 0000003C -R void __cdecl InitialiseRollingBall(int16_t item_num); -00441B70 00000347 -R void __cdecl RollingBallControl(int16_t item_num); -00441EC0 0000024A -R void __cdecl RollingBallCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); -00442110 00000155 -R void __cdecl SpikeCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); -00442270 0000004F -R void __cdecl TrapDoorControl(int16_t item_num); -004422C0 0000003A -R void __cdecl TrapDoorFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00442300 0000003F -R void __cdecl TrapDoorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00442340 000000A3 -R int32_t __cdecl OnTrapDoor(ITEM_INFO *item, int32_t x, int32_t z); -004423F0 0000010A -R void __cdecl Pendulum(int16_t item_num); -00442500 00000105 -R void __cdecl FallingBlock(int16_t item_num); -00442610 0000003E -R void __cdecl FallingBlockFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -00442650 00000044 -R void __cdecl FallingBlockCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); -004426A0 000000BD -R void __cdecl TeethTrap(int16_t item_num); -00442760 000000E0 -R void __cdecl FallingCeiling(int16_t item_num); -00442840 0000013E -R void __cdecl DartEmitterControl(int16_t item_num); -00442980 00000155 -R void __cdecl DartsControl(int16_t item_num); -00442AE0 0000004B -R void __cdecl DartEffectControl(int16_t fx_num); -00442B30 00000090 -R void __cdecl FlameEmitterControl(int16_t item_num); -00442BC0 00000164 -R void __cdecl FlameControl(int16_t fx_num); -00442D30 00000049 -R void __cdecl LaraBurn(void); -00442D80 000000E6 -R void __cdecl LavaBurn(ITEM_INFO *item); -00442E70 000000C5 -R void __cdecl LavaSpray(int16_t item_num); -00442F40 0000010B -R void __cdecl ControlLavaBlob(int16_t fx_num); +0x00440F10 0x01F4 -R void __cdecl MineControl(int16_t mine_num); +0x00441110 0x0138 -R void __cdecl ControlSpikeWall(int16_t item_num); +0x00441250 0x0115 -R void __cdecl ControlCeilingSpikes(int16_t item_num); +0x00441370 0x0086 -R void __cdecl HookControl(int16_t item_num); +0x00441400 0x0190 -R void __cdecl PropellerControl(int16_t item_num); +0x00441590 0x017B -R void __cdecl SpinningBlade(int16_t item_num); +0x00441710 0x00FE -R void __cdecl IcicleControl(int16_t item_num); +0x00441810 0x003C -R void __cdecl InitialiseBlade(int16_t item_num); +0x00441850 0x0091 -R void __cdecl BladeControl(int16_t item_num); +0x004418F0 0x0046 -R void __cdecl InitialiseKillerStatue(int16_t item_num); +0x00441940 0x0109 -R void __cdecl KillerStatueControl(int16_t item_num); +0x00441A50 0x00DB -R void __cdecl SpringBoardControl(int16_t item_num); +0x00441B30 0x003C -R void __cdecl InitialiseRollingBall(int16_t item_num); +0x00441B70 0x0347 -R void __cdecl RollingBallControl(int16_t item_num); +0x00441EC0 0x024A -R void __cdecl RollingBallCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); +0x00442110 0x0155 -R void __cdecl SpikeCollision(int16_t item_num, ITEM_INFO *litem, COLL_INFO *coll); +0x00442270 0x004F -R void __cdecl TrapDoorControl(int16_t item_num); +0x004422C0 0x003A -R void __cdecl TrapDoorFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00442300 0x003F -R void __cdecl TrapDoorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00442340 0x00A3 -R int32_t __cdecl OnTrapDoor(ITEM_INFO *item, int32_t x, int32_t z); +0x004423F0 0x010A -R void __cdecl Pendulum(int16_t item_num); +0x00442500 0x0105 -R void __cdecl FallingBlock(int16_t item_num); +0x00442610 0x003E -R void __cdecl FallingBlockFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x00442650 0x0044 -R void __cdecl FallingBlockCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int32_t *height); +0x004426A0 0x00BD -R void __cdecl TeethTrap(int16_t item_num); +0x00442760 0x00E0 -R void __cdecl FallingCeiling(int16_t item_num); +0x00442840 0x013E -R void __cdecl DartEmitterControl(int16_t item_num); +0x00442980 0x0155 -R void __cdecl DartsControl(int16_t item_num); +0x00442AE0 0x004B -R void __cdecl DartEffectControl(int16_t fx_num); +0x00442B30 0x0090 -R void __cdecl FlameEmitterControl(int16_t item_num); +0x00442BC0 0x0164 -R void __cdecl FlameControl(int16_t fx_num); +0x00442D30 0x0049 -R void __cdecl LaraBurn(void); +0x00442D80 0x00E6 -R void __cdecl LavaBurn(ITEM_INFO *item); +0x00442E70 0x00C5 -R void __cdecl LavaSpray(int16_t item_num); +0x00442F40 0x010B -R void __cdecl ControlLavaBlob(int16_t fx_num); # game/yeti.c -00443050 000002CA -R void __cdecl GiantYetiControl(int16_t item_num); -00443350 000005ED -R void __cdecl YetiControl(int16_t item_num); - -00443990 000001B8 -R void __cdecl BGND_Make640x480(uint8_t *bitmap, RGB_888 *palette); -00443B50 000000B9 -R int32_t __cdecl BGND_AddTexture(int32_t tile_idx, BYTE *bitmap, int32_t pal_index, RGB_888 *bmp_pal); -00443C10 00000032 -R void __cdecl BGND_GetPageHandles(void); -00443C50 0000005F -R void __cdecl BGND_DrawInGameBlack(void); -00443CB0 000000DC -R void __cdecl DrawQuad(float sx, float sy, float width, float height, D3DCOLOR color); -00443D90 00000220 -R void __cdecl BGND_DrawInGameBackground(void); -00443FB0 00000251 -R void __cdecl DrawTextureTile(int32_t sx, int32_t sy, int32_t width, int32_t height, HWR_TEX_HANDLE tex_source, int32_t tu, int32_t tv, int32_t t_width, int32_t t_height, D3DCOLOR color0, D3DCOLOR color1, D3DCOLOR color2, D3DCOLOR color3); -00444210 0000008B -R D3DCOLOR __cdecl BGND_CenterLighting(int32_t x, int32_t y, int32_t width, int32_t height); -004444C0 0000004D -R void __cdecl BGND_Free(void); -00444510 00000030 -R bool __cdecl BGND_Init(void); -00444540 0000003E -R void __cdecl Enumerate3DDevices(DISPLAY_ADAPTER *adapter); -00444570 0000001F -R bool __cdecl D3DCreate(void); -004445B0 000000BD -R HRESULT __stdcall Enum3DDevicesCallback(GUID *lpGuid, LPTSTR lpDeviceDescription, LPTSTR lpDeviceName, LPD3DDEVICEDESC lpD3DHWDeviceDesc, LPD3DDEVICEDESC lpD3DHELDeviceDesc, LPVOID lpContext); -00444670 00000037 -R bool __cdecl D3DIsSupported(LPD3DDEVICEDESC desc); -004446B0 000000B9 -R bool __cdecl D3DSetViewport(void); -00444770 000001B8 -R void __cdecl D3DDeviceCreate(LPDDS lpBackBuffer); -00444930 0000006A -R void __cdecl Direct3DRelease(void); -00444980 00000006 -R bool __cdecl Direct3DInit(void); -00444990 00000018 x sub_444990 -004449A0 00000012 x sub_4449A0 -004449D0 000000C6 x sub_4449D0 -00444AA0 00000018 x sub_444AA0 -00444AB0 0000005F x sub_444AB0 -00444B20 0000008C x sub_444B20 -00444BB0 00000005 x sub_444BB0 -00444BC0 00000001 x sub_444BC0 -00444BD0 00000054 -R bool __cdecl DDrawCreate(LPGUID lpGUID); -00444C30 00000033 -R void __cdecl DDrawRelease(void); -00444C70 00000073 -R void __cdecl GameWindowCalculateSizeFromClient(int32_t *width, int32_t *height); -00444CF0 0000006A -R void __cdecl GameWindowCalculateSizeFromClientByZero(int32_t *width, int32_t *height); -00444D60 00000041 +R void __cdecl WinVidSetMinWindowSize(int32_t width, int32_t height); -00444DB0 00000008 +R void __cdecl WinVidClearMinWindowSize(void); -00444DC0 00000041 +R void __cdecl WinVidSetMaxWindowSize(int32_t width, int32_t height); -00444E10 00000008 +R void __cdecl WinVidClearMaxWindowSize(void); -00444E20 00000048 +R int32_t __cdecl CalculateWindowWidth(int32_t width, int32_t height); -00444E70 00000028 +R int32_t __cdecl CalculateWindowHeight(int32_t width, int32_t height); -00444EA0 00000104 +R bool __cdecl WinVidGetMinMaxInfo(LPMINMAXINFO info); -00444FB0 00000011 +R HWND __cdecl WinVidFindGameWindow(void); -00444FD0 000000E2 +R bool __cdecl WinVidSpinMessageLoop(bool needWait); -004450C0 00000043 +R void __cdecl WinVidShowGameWindow(int32_t nCmdShow); -00445110 0000003A +R void __cdecl WinVidHideGameWindow(void); -00445150 00000035 +R void __cdecl WinVidSetGameWindowSize(int32_t width, int32_t height); -00445190 000000A7 +R bool __cdecl ShowDDrawGameWindow(bool active); -00445240 00000087 +R bool __cdecl HideDDrawGameWindow(void); -004452D0 00000044 +R HRESULT __cdecl DDrawSurfaceCreate(LPDDSDESC dsp, LPDDS *surface); -00445320 00000046 +R HRESULT __cdecl DDrawSurfaceRestoreLost(LPDDS surface1, LPDDS surface2, bool blank); -00445370 0000004D +R bool __cdecl WinVidClearBuffer(LPDDS surface, LPRECT rect, DWORD fill_color); -004453C0 0000003D +R HRESULT __cdecl WinVidBufferLock(LPDDS surface, LPDDSDESC desc, DWORD flags); -00445400 00000025 +R HRESULT __cdecl WinVidBufferUnlock(LPDDS surface, LPDDSDESC desc); -00445430 00000090 +R bool __cdecl WinVidCopyBitmapToBuffer(LPDDS surface, const BYTE *bitmap); -004454C0 00000046 +R DWORD __cdecl GetRenderBitDepth(DWORD dwRGBBitCount); -00445550 00000071 +R void __thiscall WinVidGetColorBitMasks(COLOR_BIT_MASKS *bm, LPDDPIXELFORMAT pixel_format); -004455D0 00000044 +R void __cdecl BitMaskGetNumberOfBits(DWORD bit_mask, DWORD *bit_depth, DWORD *bit_offset); -00445620 00000061 +R DWORD __cdecl CalculateCompatibleColor(COLOR_BIT_MASKS *mask, int32_t red, int32_t green, int32_t blue, int32_t alpha); -00445690 0000008C +R bool __cdecl WinVidGetDisplayMode(DISPLAY_MODE *disp_mode); -00445720 00000088 +R bool __cdecl WinVidGoFullScreen(DISPLAY_MODE *disp_mode); -004457B0 0000010B +R bool __cdecl WinVidGoWindowed(int32_t width, int32_t height, DISPLAY_MODE *dispMode); -004458C0 000000D5 +R void __cdecl WinVidSetDisplayAdapter(DISPLAY_ADAPTER *disp_adapter); -004459A0 00000045 *R bool __thiscall CompareVideoModes(const DISPLAY_MODE *mode1, const DISPLAY_MODE *mode2); -004459F0 00000053 -R bool __cdecl WinVidGetDisplayModes(void); -00445A50 000003B1 -R HRESULT __stdcall EnumDisplayModesCallback(LPDDSDESC lpDDSurfaceDesc, LPVOID lpContext); -00445E10 00000040 -R bool __cdecl WinVidInit(void); -00445E50 000000AF -R bool __cdecl WinVidGetDisplayAdapters(void); -00445F00 00000013 + void __thiscall S_FlaggedString_Delete(STRING_FLAGGED *string); -00445F20 0000001A -R bool __cdecl EnumerateDisplayAdapters(DISPLAY_ADAPTER_LIST *displayAdapterList); -00445F40 000001BE -R BOOL __stdcall EnumDisplayAdaptersCallback(GUID *lpGUID, LPTSTR lpDriverDescription, LPTSTR lpDriverName, LPVOID lpContext); -00446100 00000035 + void __thiscall S_FlaggedString_InitAdapter(DISPLAY_ADAPTER *adapter); -00446140 0000006A -R bool __cdecl WinVidRegisterGameWindowClass(void); -004461B0 0000049F -R LRESULT __stdcall WinVidGameWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -004467C0 000001C0 -R void __cdecl WinVidResizeGameWindow(HWND hWnd, int32_t edge, LPRECT rect); -004469A0 000000BC -R bool __cdecl WinVidCheckGameWindowPalette(HWND hWnd); -00446A60 000000C6 -R bool __cdecl WinVidCreateGameWindow(void); -00446B30 00000022 -R void __cdecl WinVidFreeWindow(void); -00446B60 0000004D -R void __cdecl WinVidExitMessage(void); -00446BB0 00000048 -R DISPLAY_ADAPTER_NODE *__cdecl WinVidGetDisplayAdapter(GUID *lpGuid); -00446C00 00000374 -R void __cdecl WinVidStart(void); -00446F80 00000013 -R void __cdecl WinVidFinish(void); -00446FA0 0000000D -R void __thiscall DisplayModeListInit(DISPLAY_MODE_LIST *pList); -00446FB0 00000032 -R void __thiscall DisplayModeListDelete(DISPLAY_MODE_LIST *pList); -00446FF0 00000012 -R DISPLAY_MODE *__thiscall InsertDisplayMode(DISPLAY_MODE_LIST *modeList, DISPLAY_MODE_NODE *before); -00447010 00000048 -R DISPLAY_MODE *__thiscall InsertDisplayModeInListHead(DISPLAY_MODE_LIST *modeList); -00447060 0000004A -R DISPLAY_MODE *__thiscall InsertDisplayModeInListTail(DISPLAY_MODE_LIST *modeList); -004470B0 00000018 x sub_4470B0 -004470C0 00000012 x sub_4470C0 -004470F0 00000068 x sub_4470F0 -00447160 00000018 x sub_447160 -00447170 00000039 x sub_447170 -004471C0 0000002F x sub_4471C0 -004471F0 00000022 +R bool __cdecl DInputCreate(void); -00447220 0000001A +R void __cdecl DInputRelease(void); -00447240 0000005A +R void __cdecl WinInReadKeyboard(LPVOID lpInputData); -004472A0 000000F3 -R DWORD __cdecl WinInReadJoystick(int32_t *x, int32_t *y); -004473A0 00000005 -R sub_4473A0 -004473B0 0000007F -R bool __cdecl WinInputInit(void); -00447430 00000024 -R bool __cdecl DInputEnumDevices(JOYSTICK_LIST *joystickList); -00447460 000000E8 -R BOOL __stdcall DInputEnumDevicesCallback(LPCDIDEVICEINSTANCE lpddi, LPVOID pvRef); -00447550 0000001F + void __thiscall S_FlaggedString_Create(STRING_FLAGGED *string, int32_t size); -00447570 0000004E -R JOYSTICK_NODE *__cdecl GetJoystick(GUID *lpGuid); -004475C0 000000C9 -R void __cdecl DInputKeyboardCreate(void); -00447690 00000029 -R void __cdecl DInputKeyboardRelease(void); -004476C0 000000E4 -R bool __cdecl DInputJoystickCreate(void); -004477B0 0000002D -R void __cdecl WinInStart(void); -004477E0 0000000F -R void __cdecl WinInFinish(void); -004477F0 00000017 -R void __cdecl WinInRunControlPanel(HWND hWnd); -00447810 00000062 *R void __cdecl IncreaseScreenSize(void); -00447880 00000062 *R void __cdecl DecreaseScreenSize(void); -004478F0 0000009F *R void __cdecl setup_screen_size(void); -00447990 00000034 *R void __cdecl TempVideoAdjust(int32_t hires, double sizer); -004479D0 00000039 -R void __cdecl TempVideoRemove(void); -00447A10 00000035 -R void __cdecl S_FadeInInventory(BOOL isFade); -00447A50 00000027 -R void __cdecl S_FadeOutInventory(BOOL isFade); -00447A80 00000018 x sub_447A80 -00447A90 00000012 x sub_447A90 -00447AC0 00000068 x sub_447AC0 -00447B30 00000018 x sub_447B30 -00447B40 00000039 x sub_447B40 -00447B90 0000002F x sub_447B90 -00447BC0 00000048 + const SOUND_ADAPTER_NODE *__cdecl S_Audio_Sample_GetAdapter(GUID *guid); -00447C10 0000002E + void __cdecl S_Audio_Sample_CloseAllTracks(void); -00447C40 0000010E + bool __cdecl S_Audio_Sample_Load(int32_t sample_id, LPWAVEFORMATEX format, const void *data, int32_t data_size); -00447D50 00000045 + bool __cdecl S_Audio_Sample_IsTrackPlaying(int32_t track_id); -00447DA0 000000E7 + int32_t __cdecl S_Audio_Sample_Play(int32_t sample_id, int32_t volume, int32_t pitch, int32_t pan, int32_t flags); -00447E90 00000039 + int32_t __cdecl S_Audio_Sample_GetFreeTrackIndex(void); -00447ED0 0000002C + void __cdecl S_Audio_Sample_AdjustTrackVolumeAndPan(int32_t track_id, int32_t volume, int32_t pan); -00447F00 00000031 + void __cdecl S_Audio_Sample_AdjustTrackPitch(int32_t track_id, int32_t pitch); -00447F40 0000002F + void __cdecl S_Audio_Sample_CloseTrack(int32_t track_id); -00447FA0 00000005 x sub_447FA0 -00447FB0 0000009C + bool __cdecl S_Audio_Sample_Init(void); -00448050 0000001A + bool __cdecl S_Audio_Sample_DSoundEnumerate(SOUND_ADAPTER_LIST *adapter_list); -00448070 000000E2 + BOOL __stdcall S_Audio_Sample_DSoundEnumCallback(LPGUID guid, LPCTSTR description, LPCTSTR module, LPVOID context); -00448160 0000017C + void __cdecl S_Audio_Sample_Init2(HWND hwnd); -004482E0 0000001C + bool __cdecl S_Audio_Sample_DSoundCreate(GUID *guid); -00448300 000000C4 + bool __cdecl S_Audio_Sample_DSoundBufferTest(void); -004483D0 0000002A + void __cdecl S_Audio_Sample_Shutdown(void); -00448400 00000006 + bool __cdecl S_Audio_Sample_IsEnabled(void); -00448410 00000005 -R sub_448410 -00448420 00000001 -R sub_448420 -00448430 0000013B -R void __cdecl CreateScreenBuffers(void); -00448570 00000094 -R void __cdecl CreatePrimarySurface(void); -00448610 00000098 -R void __cdecl CreateBackBuffer(void); -004486B0 0000009D -R void __cdecl CreateClipper(void); -00448750 000000D3 -R void __cdecl CreateWindowPalette(void); -00448830 000000BC -R void __cdecl CreateZBuffer(void); -004488F0 0000002B -R DWORD __cdecl GetZBufferDepth(void); -00448920 000000A1 -R void __cdecl CreateRenderBuffer(void); -004489D0 00000070 -R void __cdecl CreatePictureBuffer(void); -00448A40 000001A4 -R void __cdecl ClearBuffers(DWORD flags, DWORD fill_color); -00448BF0 0000013C -R void __cdecl RestoreLostBuffers(void); -00448D30 000000CF -R void __cdecl UpdateFrame(bool need_run_message_loop, LPRECT rect); -00448E00 0000003B -R void __cdecl WaitPrimaryBufferFlip(void); -00448E40 00000003 -R bool __cdecl RenderInit(void); -00448E50 000003A5 -R void __cdecl RenderStart(bool is_reset); -00449200 000000E6 -R void __cdecl RenderFinish(bool need_to_clear_textures); -004492F0 00000204 -R bool __cdecl ApplySettings(APP_SETTINGS *new_settings); -00449500 00000105 -R void __cdecl FmvBackToGame(void); -00449610 0000023A *R void __cdecl GameApplySettings(APP_SETTINGS *new_settings); -00449850 00000067 -R void __cdecl UpdateGameResolution(void); -004498C0 0000000C +R LPCTSTR __cdecl DecodeErrorMessage(DWORD error_code); -004498D0 00000049 -R BOOL __cdecl ReadFileSync(HANDLE handle, LPVOID lpBuffer, DWORD nBytesToRead, LPDWORD lpnBytesRead, LPOVERLAPPED lpOverlapped); -00449920 00000188 -R BOOL __cdecl LoadTexturePages(HANDLE handle); -00449AB0 000003A0 -R BOOL __cdecl LoadRooms(HANDLE handle); -00449E50 00000097 -R void __cdecl AdjustTextureUVs(bool reset_uv_add); -00449EF0 0000057E -R BOOL __cdecl LoadObjects(HANDLE handle); -0044A470 00000135 -R BOOL __cdecl LoadSprites(HANDLE handle); -0044A5B0 000001D6 -R BOOL __cdecl LoadItems(HANDLE handle); -0044A790 00000188 -R BOOL __cdecl LoadDepthQ(HANDLE handle); -0044A920 00000071 -R BOOL __cdecl LoadPalettes(HANDLE handle); -0044A9A0 00000060 -R BOOL __cdecl LoadCameras(HANDLE handle); -0044AA00 00000060 -R BOOL __cdecl LoadSoundEffects(HANDLE handle); -0044AA60 00000221 -R BOOL __cdecl LoadBoxes(HANDLE handle); -0044AC90 00000055 -R BOOL __cdecl LoadAnimatedTextures(HANDLE handle); -0044ACF0 00000079 -R BOOL __cdecl LoadCinematic(HANDLE handle); -0044AD70 0000008A -R BOOL __cdecl LoadDemo(HANDLE handle); -0044AE00 0000009A -R void __cdecl LoadDemoExternal(LPCTSTR level_name); -0044AEA0 00000265 -R BOOL __cdecl LoadSamples(HANDLE handle); -0044B110 00000036 -R void __cdecl ChangeFileNameExtension(char *file_name, const char *file_ext); -0044B150 00000026 -R LPCTSTR __cdecl GetFullPath(LPCTSTR file_name); -0044B180 000000E0 -R BOOL __cdecl SelectDrive(void); -0044B260 0000024A -R BOOL __cdecl LoadLevel(LPCTSTR file_name, int32_t level_num); -0044B4B0 00000018 -R BOOL __cdecl S_LoadLevelFile(LPCTSTR file_name, int32_t level_num, GF_LEVEL_TYPE level_type); -0044B4D0 0000002A -R void __cdecl S_UnloadLevelFile(void); -0044B500 00000014 -R void __cdecl S_AdjustTexelCoordinates(void); -0044B520 000000C4 -R BOOL __cdecl S_ReloadLevelGraphics(BOOL reload_palettes, BOOL reload_tex_pages); -0044B5F0 000000C6 -R BOOL __cdecl Read_Strings(DWORD count, char **string_table, char **string_buf, LPDWORD buf_size, HANDLE handle); -0044B6C0 000006D1 -R BOOL __cdecl S_LoadGameFlow(const char *file_name); -0044BDA0 0000006B -R bool __cdecl PlayFMV(const char *file_name); -0044BE10 000002E0 -R void __cdecl WinPlayFMV(const char *file_name, bool is_playback); -0044C0F0 00000048 -R void __cdecl WinStopFMV(bool is_playback); -0044C140 00000088 -R bool __cdecl IntroFMV(const char *file_name1, const char *file_name2); -0044C1D0 00000023 -R uint16_t __cdecl S_COLOUR(int32_t red, int32_t green, int32_t blue); -0044C200 00000035 -R void __cdecl S_DrawScreenLine(int32_t x, int32_t y, int32_t z, int32_t x_len, int32_t y_len, BYTE color_idx, D3DCOLOR *gour, uint16_t flags); -0044C240 00000116 -R void __cdecl S_DrawScreenBox(int32_t sx, int32_t sy, int32_t z, int32_t width, int32_t height, BYTE color_idx, const GOURAUD_OUTLINE *gour, uint16_t flags); -0044C360 0000002E -R void __cdecl S_DrawScreenFBox(int32_t sx, int32_t sy, int32_t z, int32_t width, int32_t height, BYTE color_idx, const GOURAUD_FILL *gour, uint16_t flags); -0044C390 0000000F -R void __cdecl S_FinishInventory(void); -0044C3A0 00000043 *R void __cdecl S_FadeToBlack(void); -0044C3F0 00000057 *R void __cdecl S_Wait(int32_t timeout, BOOL input_check); -0044C450 0000000E -R bool __cdecl S_PlayFMV(const char *file_name); -0044C460 00000013 -R bool __cdecl S_IntroFMV(const char *file_name1, const char *file_name2); -0044C480 00000144 -R int16_t __cdecl StartGame(int32_t level_num, GF_LEVEL_TYPE level_type); -0044C5D0 0000009A -R int32_t __cdecl GameLoop(BOOL demo_mode); -0044C670 00000006 *R int32_t __cdecl LevelCompleteSequence(void); -0044C680 000001C2 -R int32_t __cdecl LevelStats(int32_t level_num); -0044C850 00000113 -R int32_t __cdecl GameStats(int32_t level_num); -0044C970 0000001E + int32_t __cdecl Random_GetControl(void); -0044C990 0000000A + void __cdecl Random_SeedControl(int32_t seed); -0044C9A0 0000001E + int32_t __cdecl Random_GetDraw(void); -0044C9C0 0000000A + void __cdecl Random_SeedDraw(int32_t seed); -0044C9D0 00000044 -R void __cdecl GetValidLevelsList(REQUEST_INFO *req); -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 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); -0044D170 00000059 -R void __cdecl HWR_ResetZBuffer(void); -0044D1D0 00000024 -R void __cdecl HWR_TexSource(HWR_TEX_HANDLE tex_source); -0044D200 0000004A -R void __cdecl HWR_EnableColorKey(bool state); -0044D250 00000082 *R void __cdecl HWR_EnableZBuffer(bool z_write_enable, bool z_enable); -0044D2E0 00000016 -R void __cdecl HWR_BeginScene(void); -0044D310 0000016C -R void __cdecl HWR_DrawPolyList(void); -0044D490 0000008E -R void __cdecl HWR_LoadTexturePages(int32_t pages_count, void *pages_buf, RGB_888 *palette); -0044D520 0000004A -R void __cdecl HWR_FreeTexturePages(void); -0044D570 00000035 -R void __cdecl HWR_GetPageHandles(void); -0044D5B0 00000019 -R bool __cdecl HWR_VertexBufferFull(void); -0044D5E0 00000022 -R bool __cdecl HWR_Init(void); -0044D610 0000005C *R BOOL __cdecl S_InitialiseSystem(void); -0044D670 00000011 * void __cdecl GameBuf_Shutdown(void); -0044D690 00000021 -R void __cdecl init_game_malloc(void); -0044D6C0 0000006C -R void *__cdecl game_malloc(uint32_t alloc_size, uint32_t buf_index); -0044D740 00000034 -R void __cdecl game_free(uint32_t free_size); -0044D780 000000E8 -R void __cdecl CalculateWibbleTable(void); -0044D870 0000007F + void __cdecl Random_Seed(void); -0044D8F0 00000120 + BOOL __cdecl S_Input_Key(KEYMAP keymap); -0044DA10 00000AC4 + bool __cdecl Input_Update(void); -0044E4E0 0000003C +R int32_t __cdecl RenderErrorBox(int32_t error_code); -0044E520 000001D6 +R int32_t __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int32_t nShowCmd); -0044E6F0 00000001 x sub_44E6F0 -0044E700 00000064 +R int32_t __cdecl GameInit(bool skip_cd_init); -0044E770 00000055 + void __cdecl Shell_Cleanup(void); -0044E7A0 0000007C +R int32_t __cdecl WinGameStart(void); -0044E820 00000039 + void __cdecl Shell_Shutdown(void); -0044E860 00000017 xR sub_44E860 -0044E880 00000010 xR sub_44E880 -0044E890 0000003C + void __cdecl Shell_ExitSystem(const char *message); -0044E8E0 0000010F +R void __cdecl ScreenshotPCX(void); -0044E9F0 000000AE +R DWORD __cdecl CompPCX(BYTE *bitmap, DWORD width, DWORD height, RGB_888 *palette, BYTE **pcx_data); -0044EAA0 000000D2 +R DWORD __cdecl EncodeLinePCX(BYTE *src, DWORD width, BYTE *dst); -0044EB80 0000003E +R DWORD __cdecl EncodePutPCX(BYTE value, BYTE num, BYTE *buffer); -0044EBC0 000001F5 +R void __cdecl Screenshot(LPDDS screen); -0044EDC0 0000007F -R void __cdecl do_inventory_options(INVENTORY_ITEM *item); -0044EED0 00000648 -R void __cdecl do_passport_option(INVENTORY_ITEM *item); -0044F520 000002DA -R void __cdecl do_detail_option(INVENTORY_ITEM *item); -0044F800 0000049D -R void __cdecl do_sound_option(INVENTORY_ITEM *item); -0044FCA0 000000C0 -R void __cdecl do_compass_option(INVENTORY_ITEM *item); -0044FD60 0000007E -R void __cdecl FlashConflicts(void); -0044FDE0 00000040 -R void __cdecl DefaultConflict(void); -0044FE20 000006F4 -R void __cdecl do_control_option(INVENTORY_ITEM *item); -00450530 000004D0 -R void __cdecl S_ShowControls(void); -00450A00 00000096 -R void __cdecl S_ChangeCtrlText(void); -00450AA0 0000003B -R void __cdecl S_RemoveCtrlText(void); -00450AE0 00000006 -R int32_t __cdecl GetRenderHeight(void); -00450AF0 00000006 -R int32_t __cdecl GetRenderWidth(void); -00450B00 000000E4 *R void __cdecl S_InitialisePolyList(BOOL clear_back_buffer); -00450BF0 00000036 *R DWORD __cdecl S_DumpScreen(void); -00450C30 0000000B -R void __cdecl S_ClearScreen(void); -00450C40 00000037 -R void __cdecl S_InitialiseScreen(GF_LEVEL_TYPE level_type); -00450C80 00000089 *R void __cdecl S_OutputPolyList(void); -00450CC0 00000270 -R int32_t __cdecl S_GetObjectBounds(int16_t *obj_ptr); -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 *obj_ptr, ITEM_INFO *item); -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); -00451800 000001CC -R void __cdecl S_DrawHealthBar(int32_t percent); -004519D0 000001F6 -R void __cdecl S_DrawAirBar(int32_t percent); -00451BD0 000000C0 -R void __cdecl AnimateTextures(int32_t ticks); -00451C90 00000051 -R void __cdecl S_SetupBelowWater(BOOL underwater); -00451CF0 00000021 -R void __cdecl S_SetupAboveWater(BOOL underwater); -00451D20 000000B1 -R void __cdecl S_AnimateTextures(int32_t ticks); -00451DE0 00000105 *R void __cdecl S_DisplayPicture(const char *file_name, BOOL is_title); -00451EF0 0000007E -R void __cdecl S_SyncPictureBufferPalette(void); -00451F70 0000001C *R void __cdecl S_DontDisplayPicture(void); -00451F80 0000000D -R void __cdecl ScreenDump(void); -00451F90 00000010 -R void __cdecl ScreenPartialDump(void); -00451FA0 000001C9 *R void __cdecl FadeToPal(int32_t fade_value, RGB_888 *palette); -00452170 00000026 -R void __cdecl ScreenClear(bool is_phd_win_size); -004521A0 000000AB -R void __cdecl S_CopyScreenToBuffer(void); -00452250 00000254 *R void __cdecl S_CopyBufferToScreen(void); -004522A0 000000FA -R BOOL __cdecl DecompPCX(const uint8_t *pcx, size_t pcx_size, LPBYTE pic, RGB_888 *pal); -004523A0 00000005 -R sub_4523A0 -004523B0 00000001 -R sub_4523B0 -004523C0 0000004E -R bool __cdecl OpenGameRegistryKey(LPCTSTR key); -00452410 00000005 -R LONG __cdecl CloseGameRegistryKey(void); -00452420 00000262 -R bool __cdecl SE_WriteAppSettings(APP_SETTINGS *settings); -00452690 00000348 -R int32_t __cdecl SE_ReadAppSettings(APP_SETTINGS *settings); -004529E0 000000D7 -R bool __cdecl SE_GraphicsTestStart(void); -00452AB0 00000014 -R void __cdecl SE_GraphicsTestFinish(void); -00452AD0 00000003 -R int32_t __cdecl SE_GraphicsTestExecute(void); -00452AE0 00000057 -R int32_t __cdecl SE_GraphicsTest(void); -00452B40 000000C7 -R bool __cdecl SE_SoundTestStart(void); -00452C00 00000005 -R void __cdecl SE_SoundTestFinish(void); -00452C10 0000003D -R int32_t __cdecl SE_SoundTestExecute(void); -00452C50 00000057 -R int32_t __cdecl SE_SoundTest(void); -00452CB0 0000003E -R int32_t __stdcall SE_PropSheetCallback(HWND hwndDlg, UINT uMsg, LPARAM lParam); -00452CF0 0000005D -R LRESULT __stdcall SE_NewPropSheetWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -00452D50 000002DE -R bool __cdecl SE_ShowSetupDialog(HWND hParent, bool isDefault); -00453030 00000351 -R INT_PTR __stdcall SE_GraphicsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -004533F0 000001DC -R void __cdecl SE_GraphicsDlgFullScreenModesUpdate(HWND hwndDlg); -004535E0 00000017 -R void __cdecl SE_GraphicsAdapterSet(HWND hwndDlg, DISPLAY_ADAPTER_NODE *adapter); -00453600 00000735 -R void __cdecl SE_GraphicsDlgUpdate(HWND hwndDlg); -00453D40 0000017C -R void __cdecl SE_GraphicsDlgInit(HWND hwndDlg); -00453EC0 00000149 -R INT_PTR __stdcall SE_SoundDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -00454050 0000000A -R void __cdecl SE_SoundAdapterSet(HWND hwndDlg, SOUND_ADAPTER_NODE *adapter); -00454060 0000011B -R void __cdecl SE_SoundDlgUpdate(HWND hwndDlg); -00454180 000000BE -R void __cdecl SE_SoundDlgInit(HWND hwndDlg); -00454240 00000106 -R INT_PTR __stdcall SE_ControlsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -00454350 0000000A -R void __cdecl SE_ControlsJoystickSet(HWND hwndDlg, JOYSTICK_NODE *joystick); -00454360 00000068 -R void __cdecl SE_ControlsDlgUpdate(HWND hwndDlg); -004543D0 000000BD -R void __cdecl SE_ControlsDlgInit(HWND hwndDlg); -00454490 0000008A -R INT_PTR __stdcall SE_OptionsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -00454520 00000234 -R void __cdecl SE_OptionsDlgUpdate(HWND hwndDlg); -00454760 0000004B -R void __cdecl SE_OptionsStrCat(LPTSTR *dstString, bool isEnabled, bool *isNext, LPCTSTR srcString); -004547B0 000000DC -R INT_PTR __stdcall SE_AdvancedDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -004548B0 00000093 -R void __cdecl SE_AdvancedDlgUpdate(HWND hwndDlg); -00454950 0000000E -R void __cdecl SE_AdvancedDlgInit(HWND hwndDlg); -00454960 00000011 -R HWND __cdecl SE_FindSetupDialog(void); -00454980 000002D0 + BOOL __cdecl Shell_Main(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 + int32_t __cdecl S_Audio_Sample_OutPlay(int32_t sample_id, uint16_t volume, int32_t pitch, int32_t pan); -00455270 0000002A + int32_t __cdecl S_Audio_Sample_CalculateSampleVolume(int32_t volume); -004552A0 00000026 + int32_t __cdecl S_Audio_Sample_CalculateSamplePan(int16_t pan); -004552D0 00000046 + int32_t __cdecl S_Audio_Sample_OutPlayLooped(int32_t track_id, uint16_t volume, int32_t pitch, int32_t pan); -00455320 00000039 + void __cdecl S_Audio_Sample_OutSetPanAndVolume(int32_t track_id, int32_t pan, uint16_t volume); -00455360 0000001C + void __cdecl S_Audio_Sample_OutSetPitch(int32_t track_id, int32_t pitch); -00455380 0000000A + void __cdecl Sound_SetMasterVolume(int32_t volume); -00455390 00000017 + void __cdecl S_Audio_Sample_OutCloseTrack(int32_t track_id); -004553B0 0000003C + void __cdecl S_Audio_Sample_OutCloseAllTracks(void); -004553C0 0000001F + BOOL __cdecl S_Audio_Sample_OutIsTrackPlaying(int32_t track_id); -004553E0 00000077 + bool __cdecl Music_Init(void); -00455460 00000051 + void __cdecl Music_Shutdown(void); -00455500 0000006F + void __cdecl Music_Play(int16_t track_id, bool is_looped); -00455570 00000039 + void __cdecl Music_Stop(void); -004555B0 00000084 + bool __cdecl Music_PlaySynced(int32_t track_id); -00455640 00000061 + int32_t __cdecl Music_GetFrames(void); -004556B0 00000092 + void __cdecl Music_SetVolume(int32_t volume); -004557A0 00000137 -R void __cdecl CopyBitmapPalette(RGB_888 *src_pal, BYTE *src_bitmap, int32_t bitmap_size, RGB_888 *dest_pal); -004558E0 000000C8 -R BYTE __cdecl FindNearestPaletteEntry(RGB_888 *palette, int32_t red, int32_t green, int32_t blue, bool ignore_sys_palette); -004559B0 000000AE -R void __cdecl SyncSurfacePalettes(void *src_data, int32_t width, int32_t height, int32_t src_pitch, RGB_888 *src_palette, void *dst_data, int32_t dst_pitch, RGB_888 *dst_palette, bool preserve_sys_palette); -00455A60 00000087 -R int32_t __cdecl CreateTexturePalette(RGB_888 *pal); -00455AF0 0000001C -R int32_t __cdecl GetFreePaletteIndex(void); -00455B10 00000023 -R void __cdecl FreePalette(int32_t palette_idx); -00455B40 00000012 -R void __cdecl SafeFreePalette(int32_t palette_idx); -00455B90 0000006A -R int32_t __cdecl CreateTexturePage(int32_t width, int32_t height, bool alpha); -00455C00 0000001C -R int32_t __cdecl GetFreeTexturePageIndex(void); -00455C20 00000098 -R bool __cdecl CreateTexturePageSurface(TEXPAGE_DESC *desc); -00455CC0 00000174 -R bool __cdecl TexturePageInit(TEXPAGE_DESC *page); -00455E40 00000025 -R LPDIRECT3DTEXTURE2 __cdecl Create3DTexture(LPDDS surface); -00455E70 00000020 -R void __cdecl SafeFreeTexturePage(int32_t page_idx); -00455E90 00000032 -R void __cdecl FreeTexturePage(int32_t page_idx); -00455ED0 0000003B -R void __cdecl TexturePageReleaseVidMemSurface(TEXPAGE_DESC *page); -00455F10 00000026 -R void __cdecl FreeTexturePages(void); -00455F40 000000A2 -R bool __cdecl LoadTexturePage(int32_t page_idx, bool reset); -00455FF0 00000035 -R bool __cdecl ReloadTextures(bool reset); -00456030 0000003E -R HWR_TEX_HANDLE __cdecl GetTexturePageHandle(int32_t page_idx); -00456070 000000F5 -R int32_t __cdecl AddTexturePage8(int32_t width, int32_t height, BYTE *page_buf, int32_t pal_idx); -00456170 00000196 -R int32_t __cdecl AddTexturePage16(int32_t width, int32_t height, BYTE *page_buf); -00456310 0000011A -R HRESULT __stdcall EnumTextureFormatsCallback(LPDDSDESC lpDdsd, LPVOID lpContext); -00456430 00000025 -R HRESULT __cdecl EnumerateTextureFormats(void); -00456460 00000030 -R void __cdecl CleanupTextures(void); -00456470 0000001F -R bool __cdecl InitTextures(void); -00456490 00000040 -R void __cdecl UpdateTicks(void); -004564D0 00000051 -R bool __cdecl TIME_Init(void); -00456530 00000058 -R DWORD __cdecl Sync(void); -00456590 00000036 -R LPVOID __cdecl UT_LoadResource(LPCTSTR lpName, LPCTSTR lpType); -004565D0 00000060 -R void __cdecl UT_InitAccurateTimer(void); -00456630 0000004E -R double __cdecl UT_Microseconds(void); -00456680 0000006F -R BOOL __cdecl UT_CenterWindow(HWND hWnd); -004566F0 0000002C -R LPTSTR __cdecl UT_FindArg(LPCTSTR str); -00456720 00000018 -R int32_t __cdecl UT_MessageBox(LPCTSTR lpText, HWND hWnd); -00456740 00000042 -R int32_t __cdecl UT_ErrorBox(UINT uID, HWND hWnd); -00456790 00000051 -R LPCTSTR __cdecl GuidBinaryToString(GUID *guid); -004567F0 000000AA -R bool __cdecl GuidStringToBinary(LPCTSTR lpString, GUID *guid); -004568A0 00000030 -R BOOL __cdecl OpenRegistryKey(LPCTSTR lpSubKey); -004568D0 0000000F -R bool __cdecl IsNewRegistryKeyCreated(void); -004568E0 0000000D -R LONG __cdecl CloseRegistryKey(void); -004568F0 0000001E -R LONG __cdecl SetRegistryDwordValue(LPCTSTR lpValueName, DWORD value); -00456910 0000002A -R LONG __cdecl SetRegistryBoolValue(LPCTSTR lpValueName, bool value); -00456940 00000036 -R LONG __cdecl SetRegistryFloatValue(LPCTSTR lpValueName, double value); -00456980 00000037 -R LONG __cdecl SetRegistryBinaryValue(LPCTSTR lpValueName, LPBYTE value, DWORD valueSize); -004569C0 0000004A -R LONG __cdecl SetRegistryStringValue(LPCTSTR lpValueName, LPCTSTR value, int32_t length); -00456A10 00000013 -R LONG __cdecl DeleteRegistryValue(LPCTSTR lpValueName); -00456A30 0000005E -R bool __cdecl GetRegistryDwordValue(LPCTSTR lpValueName, DWORD *pValue, DWORD defaultValue); -00456A90 00000076 -R bool __cdecl GetRegistryBoolValue(LPCTSTR lpValueName, bool *pValue, bool defaultValue); -00456B10 0000005C -R bool __cdecl GetRegistryFloatValue(LPCTSTR lpValueName, double *value, double defaultValue); -00456B70 00000071 -R bool __cdecl GetRegistryBinaryValue(LPCTSTR lpValueName, LPBYTE value, DWORD valueSize, LPBYTE defaultValue); -00456BF0 00000095 -R bool __cdecl GetRegistryStringValue(LPCTSTR lpValueName, LPTSTR value, DWORD maxSize, LPCTSTR defaultValue); -00456C90 00000091 -R bool __cdecl GetRegistryGuidValue(LPCTSTR lpValueName, GUID *value, GUID *defaultValue); -00456D30 00000037 -R void __thiscall SE_ReleaseBitmapResource(BITMAP_RESOURCE *bmpRsrc); -00456D70 000000C4 -R void __thiscall SE_LoadBitmapResource(BITMAP_RESOURCE *bmpRsrc, LPCTSTR lpName); -00456E40 00000064 -R void __thiscall SE_DrawBitmap(BITMAP_RESOURCE *bmpRsrc, HDC hdc, int32_t x, int32_t y); -00456EB0 0000001C -R void __thiscall SE_UpdateBitmapPalette(BITMAP_RESOURCE *bmpRsrc, HWND hWnd, HWND hSender); -00456ED0 00000057 -R void __thiscall SE_ChangeBitmapPalette(BITMAP_RESOURCE *bmpRsrc, HWND hWnd); -00456F30 00000061 -R bool __cdecl SE_RegisterSetupWindowClass(void); -00456FA0 0000023A -R LRESULT __stdcall SE_SetupWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); -004571E0 00000026 -R void __cdecl SE_PassMessageToImage(HWND hWnd, UINT uMsg, WPARAM wParam); -00457210 0000006E -R void __cdecl UT_MemBlt(BYTE *dstBuf, DWORD dstX, DWORD dstY, DWORD width, DWORD height, DWORD dstPitch, BYTE *srcBuf, DWORD srcX, DWORD srcY, DWORD srcPitch); -00457280 0000001E + void __cdecl Matrix_Push(void); -0045729E 00000033 + void __cdecl Matrix_PushUnit(void); -004572D4 00000061 + void __fastcall Output_FlatA(int32_t y0, int32_t y1, uint8_t color_idx); // actually, __watcall, which is esoteric and rarely supported -00457335 0000013A + void __fastcall Output_TransA(int32_t y0, int32_t y1, uint8_t depth_q); // actually, __watcall, which is esoteric and rarely supported -0045746F 00000160 + void __fastcall Output_GourA(int32_t y0, int32_t y1, uint8_t color_idx); // actually, __watcall, which is esoteric and rarely supported -004575CF 000002FD + void __fastcall Output_GTMapA(int32_t y0, int32_t y1, uint8_t *tex_page); // actually, __watcall, which is esoteric and rarely supported -004578CC 00000341 + void __fastcall Output_WGTMapA(int32_t y0, int32_t y1, uint8_t *tex_page); // actually, __watcall, which is esoteric and rarely supported -00457C10 00000048 + int32_t __fastcall Math_Atan(int32_t x, int32_t y); -00457C58 00000006 + int32_t __fastcall Math_Cos(int16_t angle); -00457C5E 0000001B + int32_t __fastcall Math_Sin(int16_t angle); -00457C79 0000001A + int32_t __fastcall Math_SinImpl(int16_t angle); -00457C93 0000002C + uint32_t __fastcall Math_Sqrt(uint32_t n); +0x00443050 0x02CA -R void __cdecl GiantYetiControl(int16_t item_num); +0x00443350 0x05ED -R void __cdecl YetiControl(int16_t item_num); + +0x00443990 0x01B8 -R void __cdecl BGND_Make640x480(uint8_t *bitmap, RGB_888 *palette); +0x00443B50 0x00B9 -R int32_t __cdecl BGND_AddTexture(int32_t tile_idx, BYTE *bitmap, int32_t pal_index, RGB_888 *bmp_pal); +0x00443C10 0x0032 -R void __cdecl BGND_GetPageHandles(void); +0x00443C50 0x005F -R void __cdecl BGND_DrawInGameBlack(void); +0x00443CB0 0x00DC -R void __cdecl DrawQuad(float sx, float sy, float width, float height, D3DCOLOR color); +0x00443D90 0x0220 -R void __cdecl BGND_DrawInGameBackground(void); +0x00443FB0 0x0251 -R void __cdecl DrawTextureTile(int32_t sx, int32_t sy, int32_t width, int32_t height, HWR_TEX_HANDLE tex_source, int32_t tu, int32_t tv, int32_t t_width, int32_t t_height, D3DCOLOR color0, D3DCOLOR color1, D3DCOLOR color2, D3DCOLOR color3); +0x00444210 0x008B -R D3DCOLOR __cdecl BGND_CenterLighting(int32_t x, int32_t y, int32_t width, int32_t height); +0x004444C0 0x004D -R void __cdecl BGND_Free(void); +0x00444510 0x0030 -R bool __cdecl BGND_Init(void); +0x00444540 0x003E -R void __cdecl Enumerate3DDevices(DISPLAY_ADAPTER *adapter); +0x00444570 0x001F -R bool __cdecl D3DCreate(void); +0x004445B0 0x00BD -R HRESULT __stdcall Enum3DDevicesCallback(GUID *lpGuid, LPTSTR lpDeviceDescription, LPTSTR lpDeviceName, LPD3DDEVICEDESC lpD3DHWDeviceDesc, LPD3DDEVICEDESC lpD3DHELDeviceDesc, LPVOID lpContext); +0x00444670 0x0037 -R bool __cdecl D3DIsSupported(LPD3DDEVICEDESC desc); +0x004446B0 0x00B9 -R bool __cdecl D3DSetViewport(void); +0x00444770 0x01B8 -R void __cdecl D3DDeviceCreate(LPDDS lpBackBuffer); +0x00444930 0x006A -R void __cdecl Direct3DRelease(void); +0x00444980 0x0006 -R bool __cdecl Direct3DInit(void); +0x00444990 0x0018 x sub_444990 +0x004449A0 0x0012 x sub_4449A0 +0x004449D0 0x00C6 x sub_4449D0 +0x00444AA0 0x0018 x sub_444AA0 +0x00444AB0 0x005F x sub_444AB0 +0x00444B20 0x008C x sub_444B20 +0x00444BB0 0x0005 x sub_444BB0 +0x00444BC0 0x0001 x sub_444BC0 +0x00444BD0 0x0054 -R bool __cdecl DDrawCreate(LPGUID lpGUID); +0x00444C30 0x0033 -R void __cdecl DDrawRelease(void); +0x00444C70 0x0073 -R void __cdecl GameWindowCalculateSizeFromClient(int32_t *width, int32_t *height); +0x00444CF0 0x006A -R void __cdecl GameWindowCalculateSizeFromClientByZero(int32_t *width, int32_t *height); +0x00444D60 0x0041 +R void __cdecl WinVidSetMinWindowSize(int32_t width, int32_t height); +0x00444DB0 0x0008 +R void __cdecl WinVidClearMinWindowSize(void); +0x00444DC0 0x0041 +R void __cdecl WinVidSetMaxWindowSize(int32_t width, int32_t height); +0x00444E10 0x0008 +R void __cdecl WinVidClearMaxWindowSize(void); +0x00444E20 0x0048 +R int32_t __cdecl CalculateWindowWidth(int32_t width, int32_t height); +0x00444E70 0x0028 +R int32_t __cdecl CalculateWindowHeight(int32_t width, int32_t height); +0x00444EA0 0x0104 +R bool __cdecl WinVidGetMinMaxInfo(LPMINMAXINFO info); +0x00444FB0 0x0011 +R HWND __cdecl WinVidFindGameWindow(void); +0x00444FD0 0x00E2 +R bool __cdecl WinVidSpinMessageLoop(bool needWait); +0x004450C0 0x0043 +R void __cdecl WinVidShowGameWindow(int32_t nCmdShow); +0x00445110 0x003A +R void __cdecl WinVidHideGameWindow(void); +0x00445150 0x0035 +R void __cdecl WinVidSetGameWindowSize(int32_t width, int32_t height); +0x00445190 0x00A7 +R bool __cdecl ShowDDrawGameWindow(bool active); +0x00445240 0x0087 +R bool __cdecl HideDDrawGameWindow(void); +0x004452D0 0x0044 +R HRESULT __cdecl DDrawSurfaceCreate(LPDDSDESC dsp, LPDDS *surface); +0x00445320 0x0046 +R HRESULT __cdecl DDrawSurfaceRestoreLost(LPDDS surface1, LPDDS surface2, bool blank); +0x00445370 0x004D +R bool __cdecl WinVidClearBuffer(LPDDS surface, LPRECT rect, DWORD fill_color); +0x004453C0 0x003D +R HRESULT __cdecl WinVidBufferLock(LPDDS surface, LPDDSDESC desc, DWORD flags); +0x00445400 0x0025 +R HRESULT __cdecl WinVidBufferUnlock(LPDDS surface, LPDDSDESC desc); +0x00445430 0x0090 +R bool __cdecl WinVidCopyBitmapToBuffer(LPDDS surface, const BYTE *bitmap); +0x004454C0 0x0046 +R DWORD __cdecl GetRenderBitDepth(DWORD dwRGBBitCount); +0x00445550 0x0071 +R void __thiscall WinVidGetColorBitMasks(COLOR_BIT_MASKS *bm, LPDDPIXELFORMAT pixel_format); +0x004455D0 0x0044 +R void __cdecl BitMaskGetNumberOfBits(DWORD bit_mask, DWORD *bit_depth, DWORD *bit_offset); +0x00445620 0x0061 +R DWORD __cdecl CalculateCompatibleColor(COLOR_BIT_MASKS *mask, int32_t red, int32_t green, int32_t blue, int32_t alpha); +0x00445690 0x008C +R bool __cdecl WinVidGetDisplayMode(DISPLAY_MODE *disp_mode); +0x00445720 0x0088 +R bool __cdecl WinVidGoFullScreen(DISPLAY_MODE *disp_mode); +0x004457B0 0x010B +R bool __cdecl WinVidGoWindowed(int32_t width, int32_t height, DISPLAY_MODE *dispMode); +0x004458C0 0x00D5 +R void __cdecl WinVidSetDisplayAdapter(DISPLAY_ADAPTER *disp_adapter); +0x004459A0 0x0045 *R bool __thiscall CompareVideoModes(const DISPLAY_MODE *mode1, const DISPLAY_MODE *mode2); +0x004459F0 0x0053 -R bool __cdecl WinVidGetDisplayModes(void); +0x00445A50 0x03B1 -R HRESULT __stdcall EnumDisplayModesCallback(LPDDSDESC lpDDSurfaceDesc, LPVOID lpContext); +0x00445E10 0x0040 -R bool __cdecl WinVidInit(void); +0x00445E50 0x00AF -R bool __cdecl WinVidGetDisplayAdapters(void); +0x00445F00 0x0013 + void __thiscall S_FlaggedString_Delete(STRING_FLAGGED *string); +0x00445F20 0x001A -R bool __cdecl EnumerateDisplayAdapters(DISPLAY_ADAPTER_LIST *displayAdapterList); +0x00445F40 0x01BE -R BOOL __stdcall EnumDisplayAdaptersCallback(GUID *lpGUID, LPTSTR lpDriverDescription, LPTSTR lpDriverName, LPVOID lpContext); +0x00446100 0x0035 + void __thiscall S_FlaggedString_InitAdapter(DISPLAY_ADAPTER *adapter); +0x00446140 0x006A -R bool __cdecl WinVidRegisterGameWindowClass(void); +0x004461B0 0x049F -R LRESULT __stdcall WinVidGameWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); +0x004467C0 0x01C0 -R void __cdecl WinVidResizeGameWindow(HWND hWnd, int32_t edge, LPRECT rect); +0x004469A0 0x00BC -R bool __cdecl WinVidCheckGameWindowPalette(HWND hWnd); +0x00446A60 0x00C6 -R bool __cdecl WinVidCreateGameWindow(void); +0x00446B30 0x0022 -R void __cdecl WinVidFreeWindow(void); +0x00446B60 0x004D -R void __cdecl WinVidExitMessage(void); +0x00446BB0 0x0048 -R DISPLAY_ADAPTER_NODE *__cdecl WinVidGetDisplayAdapter(GUID *lpGuid); +0x00446C00 0x0374 -R void __cdecl WinVidStart(void); +0x00446F80 0x0013 -R void __cdecl WinVidFinish(void); +0x00446FA0 0x000D -R void __thiscall DisplayModeListInit(DISPLAY_MODE_LIST *pList); +0x00446FB0 0x0032 -R void __thiscall DisplayModeListDelete(DISPLAY_MODE_LIST *pList); +0x00446FF0 0x0012 -R DISPLAY_MODE *__thiscall InsertDisplayMode(DISPLAY_MODE_LIST *modeList, DISPLAY_MODE_NODE *before); +0x00447010 0x0048 -R DISPLAY_MODE *__thiscall InsertDisplayModeInListHead(DISPLAY_MODE_LIST *modeList); +0x00447060 0x004A -R DISPLAY_MODE *__thiscall InsertDisplayModeInListTail(DISPLAY_MODE_LIST *modeList); +0x004470B0 0x0018 x sub_4470B0 +0x004470C0 0x0012 x sub_4470C0 +0x004470F0 0x0068 x sub_4470F0 +0x00447160 0x0018 x sub_447160 +0x00447170 0x0039 x sub_447170 +0x004471C0 0x002F x sub_4471C0 +0x004471F0 0x0022 +R bool __cdecl DInputCreate(void); +0x00447220 0x001A +R void __cdecl DInputRelease(void); +0x00447240 0x005A +R void __cdecl WinInReadKeyboard(LPVOID lpInputData); +0x004472A0 0x00F3 -R DWORD __cdecl WinInReadJoystick(int32_t *x, int32_t *y); +0x004473A0 0x0005 -R sub_4473A0 +0x004473B0 0x007F -R bool __cdecl WinInputInit(void); +0x00447430 0x0024 -R bool __cdecl DInputEnumDevices(JOYSTICK_LIST *joystickList); +0x00447460 0x00E8 -R BOOL __stdcall DInputEnumDevicesCallback(LPCDIDEVICEINSTANCE lpddi, LPVOID pvRef); +0x00447550 0x001F + void __thiscall S_FlaggedString_Create(STRING_FLAGGED *string, int32_t size); +0x00447570 0x004E -R JOYSTICK_NODE *__cdecl GetJoystick(GUID *lpGuid); +0x004475C0 0x00C9 -R void __cdecl DInputKeyboardCreate(void); +0x00447690 0x0029 -R void __cdecl DInputKeyboardRelease(void); +0x004476C0 0x00E4 -R bool __cdecl DInputJoystickCreate(void); +0x004477B0 0x002D -R void __cdecl WinInStart(void); +0x004477E0 0x000F -R void __cdecl WinInFinish(void); +0x004477F0 0x0017 -R void __cdecl WinInRunControlPanel(HWND hWnd); +0x00447810 0x0062 *R void __cdecl IncreaseScreenSize(void); +0x00447880 0x0062 *R void __cdecl DecreaseScreenSize(void); +0x004478F0 0x009F *R void __cdecl setup_screen_size(void); +0x00447990 0x0034 *R void __cdecl TempVideoAdjust(int32_t hires, double sizer); +0x004479D0 0x0039 -R void __cdecl TempVideoRemove(void); +0x00447A10 0x0035 -R void __cdecl S_FadeInInventory(BOOL isFade); +0x00447A50 0x0027 -R void __cdecl S_FadeOutInventory(BOOL isFade); +0x00447A80 0x0018 x sub_447A80 +0x00447A90 0x0012 x sub_447A90 +0x00447AC0 0x0068 x sub_447AC0 +0x00447B30 0x0018 x sub_447B30 +0x00447B40 0x0039 x sub_447B40 +0x00447B90 0x002F x sub_447B90 +0x00447BC0 0x0048 + const SOUND_ADAPTER_NODE *__cdecl S_Audio_Sample_GetAdapter(GUID *guid); +0x00447C10 0x002E + void __cdecl S_Audio_Sample_CloseAllTracks(void); +0x00447C40 0x010E + bool __cdecl S_Audio_Sample_Load(int32_t sample_id, LPWAVEFORMATEX format, const void *data, int32_t data_size); +0x00447D50 0x0045 + bool __cdecl S_Audio_Sample_IsTrackPlaying(int32_t track_id); +0x00447DA0 0x00E7 + int32_t __cdecl S_Audio_Sample_Play(int32_t sample_id, int32_t volume, int32_t pitch, int32_t pan, int32_t flags); +0x00447E90 0x0039 + int32_t __cdecl S_Audio_Sample_GetFreeTrackIndex(void); +0x00447ED0 0x002C + void __cdecl S_Audio_Sample_AdjustTrackVolumeAndPan(int32_t track_id, int32_t volume, int32_t pan); +0x00447F00 0x0031 + void __cdecl S_Audio_Sample_AdjustTrackPitch(int32_t track_id, int32_t pitch); +0x00447F40 0x002F + void __cdecl S_Audio_Sample_CloseTrack(int32_t track_id); +0x00447FA0 0x0005 x sub_447FA0 +0x00447FB0 0x009C + bool __cdecl S_Audio_Sample_Init(void); +0x00448050 0x001A + bool __cdecl S_Audio_Sample_DSoundEnumerate(SOUND_ADAPTER_LIST *adapter_list); +0x00448070 0x00E2 + BOOL __stdcall S_Audio_Sample_DSoundEnumCallback(LPGUID guid, LPCTSTR description, LPCTSTR module, LPVOID context); +0x00448160 0x017C + void __cdecl S_Audio_Sample_Init2(HWND hwnd); +0x004482E0 0x001C + bool __cdecl S_Audio_Sample_DSoundCreate(GUID *guid); +0x00448300 0x00C4 + bool __cdecl S_Audio_Sample_DSoundBufferTest(void); +0x004483D0 0x002A + void __cdecl S_Audio_Sample_Shutdown(void); +0x00448400 0x0006 + bool __cdecl S_Audio_Sample_IsEnabled(void); +0x00448410 0x0005 -R sub_448410 +0x00448420 0x0001 -R sub_448420 +0x00448430 0x013B -R void __cdecl CreateScreenBuffers(void); +0x00448570 0x0094 -R void __cdecl CreatePrimarySurface(void); +0x00448610 0x0098 -R void __cdecl CreateBackBuffer(void); +0x004486B0 0x009D -R void __cdecl CreateClipper(void); +0x00448750 0x00D3 -R void __cdecl CreateWindowPalette(void); +0x00448830 0x00BC -R void __cdecl CreateZBuffer(void); +0x004488F0 0x002B -R DWORD __cdecl GetZBufferDepth(void); +0x00448920 0x00A1 -R void __cdecl CreateRenderBuffer(void); +0x004489D0 0x0070 -R void __cdecl CreatePictureBuffer(void); +0x00448A40 0x01A4 -R void __cdecl ClearBuffers(DWORD flags, DWORD fill_color); +0x00448BF0 0x013C -R void __cdecl RestoreLostBuffers(void); +0x00448D30 0x00CF -R void __cdecl UpdateFrame(bool need_run_message_loop, LPRECT rect); +0x00448E00 0x003B -R void __cdecl WaitPrimaryBufferFlip(void); +0x00448E40 0x0003 -R bool __cdecl RenderInit(void); +0x00448E50 0x03A5 -R void __cdecl RenderStart(bool is_reset); +0x00449200 0x00E6 -R void __cdecl RenderFinish(bool need_to_clear_textures); +0x004492F0 0x0204 -R bool __cdecl ApplySettings(APP_SETTINGS *new_settings); +0x00449500 0x0105 -R void __cdecl FmvBackToGame(void); +0x00449610 0x023A *R void __cdecl GameApplySettings(APP_SETTINGS *new_settings); +0x00449850 0x0067 -R void __cdecl UpdateGameResolution(void); +0x004498C0 0x000C +R LPCTSTR __cdecl DecodeErrorMessage(DWORD error_code); +0x004498D0 0x0049 -R BOOL __cdecl ReadFileSync(HANDLE handle, LPVOID lpBuffer, DWORD nBytesToRead, LPDWORD lpnBytesRead, LPOVERLAPPED lpOverlapped); +0x00449920 0x0188 -R BOOL __cdecl LoadTexturePages(HANDLE handle); +0x00449AB0 0x03A0 -R BOOL __cdecl LoadRooms(HANDLE handle); +0x00449E50 0x0097 -R void __cdecl AdjustTextureUVs(bool reset_uv_add); +0x00449EF0 0x057E -R BOOL __cdecl LoadObjects(HANDLE handle); +0x0044A470 0x0135 -R BOOL __cdecl LoadSprites(HANDLE handle); +0x0044A5B0 0x01D6 -R BOOL __cdecl LoadItems(HANDLE handle); +0x0044A790 0x0188 -R BOOL __cdecl LoadDepthQ(HANDLE handle); +0x0044A920 0x0071 -R BOOL __cdecl LoadPalettes(HANDLE handle); +0x0044A9A0 0x0060 -R BOOL __cdecl LoadCameras(HANDLE handle); +0x0044AA00 0x0060 -R BOOL __cdecl LoadSoundEffects(HANDLE handle); +0x0044AA60 0x0221 -R BOOL __cdecl LoadBoxes(HANDLE handle); +0x0044AC90 0x0055 -R BOOL __cdecl LoadAnimatedTextures(HANDLE handle); +0x0044ACF0 0x0079 -R BOOL __cdecl LoadCinematic(HANDLE handle); +0x0044AD70 0x008A -R BOOL __cdecl LoadDemo(HANDLE handle); +0x0044AE00 0x009A -R void __cdecl LoadDemoExternal(LPCTSTR level_name); +0x0044AEA0 0x0265 -R BOOL __cdecl LoadSamples(HANDLE handle); +0x0044B110 0x0036 -R void __cdecl ChangeFileNameExtension(char *file_name, const char *file_ext); +0x0044B150 0x0026 -R LPCTSTR __cdecl GetFullPath(LPCTSTR file_name); +0x0044B180 0x00E0 -R BOOL __cdecl SelectDrive(void); +0x0044B260 0x024A -R BOOL __cdecl LoadLevel(LPCTSTR file_name, int32_t level_num); +0x0044B4B0 0x0018 -R BOOL __cdecl S_LoadLevelFile(LPCTSTR file_name, int32_t level_num, GF_LEVEL_TYPE level_type); +0x0044B4D0 0x002A -R void __cdecl S_UnloadLevelFile(void); +0x0044B500 0x0014 -R void __cdecl S_AdjustTexelCoordinates(void); +0x0044B520 0x00C4 -R BOOL __cdecl S_ReloadLevelGraphics(BOOL reload_palettes, BOOL reload_tex_pages); +0x0044B5F0 0x00C6 -R BOOL __cdecl Read_Strings(DWORD count, char **string_table, char **string_buf, LPDWORD buf_size, HANDLE handle); +0x0044B6C0 0x06D1 -R BOOL __cdecl S_LoadGameFlow(const char *file_name); +0x0044BDA0 0x006B -R bool __cdecl PlayFMV(const char *file_name); +0x0044BE10 0x02E0 -R void __cdecl WinPlayFMV(const char *file_name, bool is_playback); +0x0044C0F0 0x0048 -R void __cdecl WinStopFMV(bool is_playback); +0x0044C140 0x0088 -R bool __cdecl IntroFMV(const char *file_name1, const char *file_name2); +0x0044C1D0 0x0023 -R uint16_t __cdecl S_COLOUR(int32_t red, int32_t green, int32_t blue); +0x0044C200 0x0035 -R void __cdecl S_DrawScreenLine(int32_t x, int32_t y, int32_t z, int32_t x_len, int32_t y_len, BYTE color_idx, D3DCOLOR *gour, uint16_t flags); +0x0044C240 0x0116 -R void __cdecl S_DrawScreenBox(int32_t sx, int32_t sy, int32_t z, int32_t width, int32_t height, BYTE color_idx, const GOURAUD_OUTLINE *gour, uint16_t flags); +0x0044C360 0x002E -R void __cdecl S_DrawScreenFBox(int32_t sx, int32_t sy, int32_t z, int32_t width, int32_t height, BYTE color_idx, const GOURAUD_FILL *gour, uint16_t flags); +0x0044C390 0x000F -R void __cdecl S_FinishInventory(void); +0x0044C3A0 0x0043 *R void __cdecl S_FadeToBlack(void); +0x0044C3F0 0x0057 *R void __cdecl S_Wait(int32_t timeout, BOOL input_check); +0x0044C450 0x000E -R bool __cdecl S_PlayFMV(const char *file_name); +0x0044C460 0x0013 -R bool __cdecl S_IntroFMV(const char *file_name1, const char *file_name2); +0x0044C480 0x0144 -R int16_t __cdecl StartGame(int32_t level_num, GF_LEVEL_TYPE level_type); +0x0044C5D0 0x009A -R int32_t __cdecl GameLoop(BOOL demo_mode); +0x0044C670 0x0006 *R int32_t __cdecl LevelCompleteSequence(void); +0x0044C680 0x01C2 -R int32_t __cdecl LevelStats(int32_t level_num); +0x0044C850 0x0113 -R int32_t __cdecl GameStats(int32_t level_num); +0x0044C970 0x001E + int32_t __cdecl Random_GetControl(void); +0x0044C990 0x000A + void __cdecl Random_SeedControl(int32_t seed); +0x0044C9A0 0x001E + int32_t __cdecl Random_GetDraw(void); +0x0044C9C0 0x000A + void __cdecl Random_SeedDraw(int32_t seed); +0x0044C9D0 0x0044 -R void __cdecl GetValidLevelsList(REQUEST_INFO *req); +0x0044CA20 0x004C -R void __cdecl GetSavedGamesList(REQUEST_INFO *req); +0x0044CA70 0x0233 -R void __cdecl DisplayCredits(void); +0x0044CCB0 0x0165 *R BOOL __cdecl S_FrontEndCheck(void); +0x0044CE20 0x0114 -R int32_t __cdecl S_SaveGame(const void *save_data, uint32_t save_size, int32_t slot_num); +0x0044CF40 0x0096 -R int32_t __cdecl S_LoadGame(void *save_data, uint32_t save_size, int32_t slot_num); +0x0044CFE0 0x0128 -R void __cdecl HWR_InitState(void); +0x0044D110 0x0029 -R void __cdecl HWR_ResetTexSource(void); +0x0044D140 0x002B -R void __cdecl HWR_ResetColorKey(void); +0x0044D170 0x0059 -R void __cdecl HWR_ResetZBuffer(void); +0x0044D1D0 0x0024 -R void __cdecl HWR_TexSource(HWR_TEX_HANDLE tex_source); +0x0044D200 0x004A -R void __cdecl HWR_EnableColorKey(bool state); +0x0044D250 0x0082 *R void __cdecl HWR_EnableZBuffer(bool z_write_enable, bool z_enable); +0x0044D2E0 0x0016 -R void __cdecl HWR_BeginScene(void); +0x0044D310 0x016C -R void __cdecl HWR_DrawPolyList(void); +0x0044D490 0x008E -R void __cdecl HWR_LoadTexturePages(int32_t pages_count, void *pages_buf, RGB_888 *palette); +0x0044D520 0x004A -R void __cdecl HWR_FreeTexturePages(void); +0x0044D570 0x0035 -R void __cdecl HWR_GetPageHandles(void); +0x0044D5B0 0x0019 -R bool __cdecl HWR_VertexBufferFull(void); +0x0044D5E0 0x0022 -R bool __cdecl HWR_Init(void); +0x0044D610 0x005C *R BOOL __cdecl S_InitialiseSystem(void); +0x0044D670 0x0011 * void __cdecl GameBuf_Shutdown(void); +0x0044D690 0x0021 -R void __cdecl init_game_malloc(void); +0x0044D6C0 0x006C -R void *__cdecl game_malloc(uint32_t alloc_size, uint32_t buf_index); +0x0044D740 0x0034 -R void __cdecl game_free(uint32_t free_size); +0x0044D780 0x00E8 -R void __cdecl CalculateWibbleTable(void); +0x0044D870 0x007F + void __cdecl Random_Seed(void); +0x0044D8F0 0x0120 + BOOL __cdecl S_Input_Key(KEYMAP keymap); +0x0044DA10 0x0AC4 + bool __cdecl Input_Update(void); +0x0044E4E0 0x003C +R int32_t __cdecl RenderErrorBox(int32_t error_code); +0x0044E520 0x01D6 +R int32_t __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int32_t nShowCmd); +0x0044E6F0 0x0001 x sub_44E6F0 +0x0044E700 0x0064 +R int32_t __cdecl GameInit(bool skip_cd_init); +0x0044E770 0x0055 + void __cdecl Shell_Cleanup(void); +0x0044E7A0 0x007C +R int32_t __cdecl WinGameStart(void); +0x0044E820 0x0039 + void __cdecl Shell_Shutdown(void); +0x0044E860 0x0017 xR sub_44E860 +0x0044E880 0x0010 xR sub_44E880 +0x0044E890 0x003C + void __cdecl Shell_ExitSystem(const char *message); +0x0044E8E0 0x010F +R void __cdecl ScreenshotPCX(void); +0x0044E9F0 0x00AE +R DWORD __cdecl CompPCX(BYTE *bitmap, DWORD width, DWORD height, RGB_888 *palette, BYTE **pcx_data); +0x0044EAA0 0x00D2 +R DWORD __cdecl EncodeLinePCX(BYTE *src, DWORD width, BYTE *dst); +0x0044EB80 0x003E +R DWORD __cdecl EncodePutPCX(BYTE value, BYTE num, BYTE *buffer); +0x0044EBC0 0x01F5 +R void __cdecl Screenshot(LPDDS screen); +0x0044EDC0 0x007F -R void __cdecl do_inventory_options(INVENTORY_ITEM *item); +0x0044EED0 0x0648 -R void __cdecl do_passport_option(INVENTORY_ITEM *item); +0x0044F520 0x02DA -R void __cdecl do_detail_option(INVENTORY_ITEM *item); +0x0044F800 0x049D -R void __cdecl do_sound_option(INVENTORY_ITEM *item); +0x0044FCA0 0x00C0 -R void __cdecl do_compass_option(INVENTORY_ITEM *item); +0x0044FD60 0x007E -R void __cdecl FlashConflicts(void); +0x0044FDE0 0x0040 -R void __cdecl DefaultConflict(void); +0x0044FE20 0x06F4 -R void __cdecl do_control_option(INVENTORY_ITEM *item); +0x00450530 0x04D0 -R void __cdecl S_ShowControls(void); +0x00450A00 0x0096 -R void __cdecl S_ChangeCtrlText(void); +0x00450AA0 0x003B -R void __cdecl S_RemoveCtrlText(void); +0x00450AE0 0x0006 -R int32_t __cdecl GetRenderHeight(void); +0x00450AF0 0x0006 -R int32_t __cdecl GetRenderWidth(void); +0x00450B00 0x00E4 *R void __cdecl S_InitialisePolyList(BOOL clear_back_buffer); +0x00450BF0 0x0036 *R DWORD __cdecl S_DumpScreen(void); +0x00450C30 0x000B -R void __cdecl S_ClearScreen(void); +0x00450C40 0x0037 -R void __cdecl S_InitialiseScreen(GF_LEVEL_TYPE level_type); +0x00450C80 0x0089 *R void __cdecl S_OutputPolyList(void); +0x00450CC0 0x0270 -R int32_t __cdecl S_GetObjectBounds(int16_t *obj_ptr); +0x00450F30 0x0046 -R void __cdecl S_InsertBackPolygon(int32_t x0, int32_t y0, int32_t x1, int32_t y1); +0x00450F80 0x01F1 -R void __cdecl S_PrintShadow(int16_t radius, int16_t *obj_ptr, ITEM_INFO *item); +0x00451180 0x02F6 -R void __cdecl S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num); +0x00451480 0x0031 -R void __cdecl S_CalculateStaticLight(int16_t adder); +0x004514C0 0x0124 -R void __cdecl S_CalculateStaticMeshLight(int32_t x, int32_t y, int32_t z, int32_t shade1, int32_t shade2, ROOM_INFO *room); +0x004515F0 0x0206 -R void __cdecl S_LightRoom(ROOM_INFO *room); +0x00451800 0x01CC -R void __cdecl S_DrawHealthBar(int32_t percent); +0x004519D0 0x01F6 -R void __cdecl S_DrawAirBar(int32_t percent); +0x00451BD0 0x00C0 -R void __cdecl AnimateTextures(int32_t ticks); +0x00451C90 0x0051 -R void __cdecl S_SetupBelowWater(BOOL underwater); +0x00451CF0 0x0021 -R void __cdecl S_SetupAboveWater(BOOL underwater); +0x00451D20 0x00B1 -R void __cdecl S_AnimateTextures(int32_t ticks); +0x00451DE0 0x0105 *R void __cdecl S_DisplayPicture(const char *file_name, BOOL is_title); +0x00451EF0 0x007E -R void __cdecl S_SyncPictureBufferPalette(void); +0x00451F70 0x001C *R void __cdecl S_DontDisplayPicture(void); +0x00451F80 0x000D -R void __cdecl ScreenDump(void); +0x00451F90 0x0010 -R void __cdecl ScreenPartialDump(void); +0x00451FA0 0x01C9 *R void __cdecl FadeToPal(int32_t fade_value, RGB_888 *palette); +0x00452170 0x0026 -R void __cdecl ScreenClear(bool is_phd_win_size); +0x004521A0 0x00AB -R void __cdecl S_CopyScreenToBuffer(void); +0x00452250 0x0254 *R void __cdecl S_CopyBufferToScreen(void); +0x004522A0 0x00FA -R BOOL __cdecl DecompPCX(const uint8_t *pcx, size_t pcx_size, LPBYTE pic, RGB_888 *pal); +0x004523A0 0x0005 -R sub_4523A0 +0x004523B0 0x0001 -R sub_4523B0 +0x004523C0 0x004E -R bool __cdecl OpenGameRegistryKey(LPCTSTR key); +0x00452410 0x0005 -R LONG __cdecl CloseGameRegistryKey(void); +0x00452420 0x0262 -R bool __cdecl SE_WriteAppSettings(APP_SETTINGS *settings); +0x00452690 0x0348 -R int32_t __cdecl SE_ReadAppSettings(APP_SETTINGS *settings); +0x004529E0 0x00D7 -R bool __cdecl SE_GraphicsTestStart(void); +0x00452AB0 0x0014 -R void __cdecl SE_GraphicsTestFinish(void); +0x00452AD0 0x0003 -R int32_t __cdecl SE_GraphicsTestExecute(void); +0x00452AE0 0x0057 -R int32_t __cdecl SE_GraphicsTest(void); +0x00452B40 0x00C7 -R bool __cdecl SE_SoundTestStart(void); +0x00452C00 0x0005 -R void __cdecl SE_SoundTestFinish(void); +0x00452C10 0x003D -R int32_t __cdecl SE_SoundTestExecute(void); +0x00452C50 0x0057 -R int32_t __cdecl SE_SoundTest(void); +0x00452CB0 0x003E -R int32_t __stdcall SE_PropSheetCallback(HWND hwndDlg, UINT uMsg, LPARAM lParam); +0x00452CF0 0x005D -R LRESULT __stdcall SE_NewPropSheetWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); +0x00452D50 0x02DE -R bool __cdecl SE_ShowSetupDialog(HWND hParent, bool isDefault); +0x00453030 0x0351 -R INT_PTR __stdcall SE_GraphicsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +0x004533F0 0x01DC -R void __cdecl SE_GraphicsDlgFullScreenModesUpdate(HWND hwndDlg); +0x004535E0 0x0017 -R void __cdecl SE_GraphicsAdapterSet(HWND hwndDlg, DISPLAY_ADAPTER_NODE *adapter); +0x00453600 0x0735 -R void __cdecl SE_GraphicsDlgUpdate(HWND hwndDlg); +0x00453D40 0x017C -R void __cdecl SE_GraphicsDlgInit(HWND hwndDlg); +0x00453EC0 0x0149 -R INT_PTR __stdcall SE_SoundDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +0x00454050 0x000A -R void __cdecl SE_SoundAdapterSet(HWND hwndDlg, SOUND_ADAPTER_NODE *adapter); +0x00454060 0x011B -R void __cdecl SE_SoundDlgUpdate(HWND hwndDlg); +0x00454180 0x00BE -R void __cdecl SE_SoundDlgInit(HWND hwndDlg); +0x00454240 0x0106 -R INT_PTR __stdcall SE_ControlsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +0x00454350 0x000A -R void __cdecl SE_ControlsJoystickSet(HWND hwndDlg, JOYSTICK_NODE *joystick); +0x00454360 0x0068 -R void __cdecl SE_ControlsDlgUpdate(HWND hwndDlg); +0x004543D0 0x00BD -R void __cdecl SE_ControlsDlgInit(HWND hwndDlg); +0x00454490 0x008A -R INT_PTR __stdcall SE_OptionsDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +0x00454520 0x0234 -R void __cdecl SE_OptionsDlgUpdate(HWND hwndDlg); +0x00454760 0x004B -R void __cdecl SE_OptionsStrCat(LPTSTR *dstString, bool isEnabled, bool *isNext, LPCTSTR srcString); +0x004547B0 0x00DC -R INT_PTR __stdcall SE_AdvancedDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +0x004548B0 0x0093 -R void __cdecl SE_AdvancedDlgUpdate(HWND hwndDlg); +0x00454950 0x000E -R void __cdecl SE_AdvancedDlgInit(HWND hwndDlg); +0x00454960 0x0011 -R HWND __cdecl SE_FindSetupDialog(void); +0x00454980 0x02D0 + BOOL __cdecl Shell_Main(void); +0x00454C50 0x0110 +R int16_t __cdecl TitleSequence(void); +0x00454D60 0x032D -R void __cdecl CheckCheatMode(void); +0x004550C0 0x007D *R void __cdecl S_SaveSettings(void); +0x00455140 0x00DB *R void __cdecl S_LoadSettings(void); +0x00455220 0x0046 + int32_t __cdecl S_Audio_Sample_OutPlay(int32_t sample_id, uint16_t volume, int32_t pitch, int32_t pan); +0x00455270 0x002A + int32_t __cdecl S_Audio_Sample_CalculateSampleVolume(int32_t volume); +0x004552A0 0x0026 + int32_t __cdecl S_Audio_Sample_CalculateSamplePan(int16_t pan); +0x004552D0 0x0046 + int32_t __cdecl S_Audio_Sample_OutPlayLooped(int32_t track_id, uint16_t volume, int32_t pitch, int32_t pan); +0x00455320 0x0039 + void __cdecl S_Audio_Sample_OutSetPanAndVolume(int32_t track_id, int32_t pan, uint16_t volume); +0x00455360 0x001C + void __cdecl S_Audio_Sample_OutSetPitch(int32_t track_id, int32_t pitch); +0x00455380 0x000A + void __cdecl Sound_SetMasterVolume(int32_t volume); +0x00455390 0x0017 + void __cdecl S_Audio_Sample_OutCloseTrack(int32_t track_id); +0x004553B0 0x003C + void __cdecl S_Audio_Sample_OutCloseAllTracks(void); +0x004553C0 0x001F + BOOL __cdecl S_Audio_Sample_OutIsTrackPlaying(int32_t track_id); +0x004553E0 0x0077 + bool __cdecl Music_Init(void); +0x00455460 0x0051 + void __cdecl Music_Shutdown(void); +0x00455500 0x006F + void __cdecl Music_Play(int16_t track_id, bool is_looped); +0x00455570 0x0039 + void __cdecl Music_Stop(void); +0x004555B0 0x0084 + bool __cdecl Music_PlaySynced(int32_t track_id); +0x00455640 0x0061 + int32_t __cdecl Music_GetFrames(void); +0x004556B0 0x0092 + void __cdecl Music_SetVolume(int32_t volume); +0x004557A0 0x0137 -R void __cdecl CopyBitmapPalette(RGB_888 *src_pal, BYTE *src_bitmap, int32_t bitmap_size, RGB_888 *dest_pal); +0x004558E0 0x00C8 -R BYTE __cdecl FindNearestPaletteEntry(RGB_888 *palette, int32_t red, int32_t green, int32_t blue, bool ignore_sys_palette); +0x004559B0 0x00AE -R void __cdecl SyncSurfacePalettes(void *src_data, int32_t width, int32_t height, int32_t src_pitch, RGB_888 *src_palette, void *dst_data, int32_t dst_pitch, RGB_888 *dst_palette, bool preserve_sys_palette); +0x00455A60 0x0087 -R int32_t __cdecl CreateTexturePalette(RGB_888 *pal); +0x00455AF0 0x001C -R int32_t __cdecl GetFreePaletteIndex(void); +0x00455B10 0x0023 -R void __cdecl FreePalette(int32_t palette_idx); +0x00455B40 0x0012 -R void __cdecl SafeFreePalette(int32_t palette_idx); +0x00455B90 0x006A -R int32_t __cdecl CreateTexturePage(int32_t width, int32_t height, bool alpha); +0x00455C00 0x001C -R int32_t __cdecl GetFreeTexturePageIndex(void); +0x00455C20 0x0098 -R bool __cdecl CreateTexturePageSurface(TEXPAGE_DESC *desc); +0x00455CC0 0x0174 -R bool __cdecl TexturePageInit(TEXPAGE_DESC *page); +0x00455E40 0x0025 -R LPDIRECT3DTEXTURE2 __cdecl Create3DTexture(LPDDS surface); +0x00455E70 0x0020 -R void __cdecl SafeFreeTexturePage(int32_t page_idx); +0x00455E90 0x0032 -R void __cdecl FreeTexturePage(int32_t page_idx); +0x00455ED0 0x003B -R void __cdecl TexturePageReleaseVidMemSurface(TEXPAGE_DESC *page); +0x00455F10 0x0026 -R void __cdecl FreeTexturePages(void); +0x00455F40 0x00A2 -R bool __cdecl LoadTexturePage(int32_t page_idx, bool reset); +0x00455FF0 0x0035 -R bool __cdecl ReloadTextures(bool reset); +0x00456030 0x003E -R HWR_TEX_HANDLE __cdecl GetTexturePageHandle(int32_t page_idx); +0x00456070 0x00F5 -R int32_t __cdecl AddTexturePage8(int32_t width, int32_t height, BYTE *page_buf, int32_t pal_idx); +0x00456170 0x0196 -R int32_t __cdecl AddTexturePage16(int32_t width, int32_t height, BYTE *page_buf); +0x00456310 0x011A -R HRESULT __stdcall EnumTextureFormatsCallback(LPDDSDESC lpDdsd, LPVOID lpContext); +0x00456430 0x0025 -R HRESULT __cdecl EnumerateTextureFormats(void); +0x00456460 0x0030 -R void __cdecl CleanupTextures(void); +0x00456470 0x001F -R bool __cdecl InitTextures(void); +0x00456490 0x0040 -R void __cdecl UpdateTicks(void); +0x004564D0 0x0051 -R bool __cdecl TIME_Init(void); +0x00456530 0x0058 -R DWORD __cdecl Sync(void); +0x00456590 0x0036 -R LPVOID __cdecl UT_LoadResource(LPCTSTR lpName, LPCTSTR lpType); +0x004565D0 0x0060 -R void __cdecl UT_InitAccurateTimer(void); +0x00456630 0x004E -R double __cdecl UT_Microseconds(void); +0x00456680 0x006F -R BOOL __cdecl UT_CenterWindow(HWND hWnd); +0x004566F0 0x002C -R LPTSTR __cdecl UT_FindArg(LPCTSTR str); +0x00456720 0x0018 -R int32_t __cdecl UT_MessageBox(LPCTSTR lpText, HWND hWnd); +0x00456740 0x0042 -R int32_t __cdecl UT_ErrorBox(UINT uID, HWND hWnd); +0x00456790 0x0051 -R LPCTSTR __cdecl GuidBinaryToString(GUID *guid); +0x004567F0 0x00AA -R bool __cdecl GuidStringToBinary(LPCTSTR lpString, GUID *guid); +0x004568A0 0x0030 -R BOOL __cdecl OpenRegistryKey(LPCTSTR lpSubKey); +0x004568D0 0x000F -R bool __cdecl IsNewRegistryKeyCreated(void); +0x004568E0 0x000D -R LONG __cdecl CloseRegistryKey(void); +0x004568F0 0x001E -R LONG __cdecl SetRegistryDwordValue(LPCTSTR lpValueName, DWORD value); +0x00456910 0x002A -R LONG __cdecl SetRegistryBoolValue(LPCTSTR lpValueName, bool value); +0x00456940 0x0036 -R LONG __cdecl SetRegistryFloatValue(LPCTSTR lpValueName, double value); +0x00456980 0x0037 -R LONG __cdecl SetRegistryBinaryValue(LPCTSTR lpValueName, LPBYTE value, DWORD valueSize); +0x004569C0 0x004A -R LONG __cdecl SetRegistryStringValue(LPCTSTR lpValueName, LPCTSTR value, int32_t length); +0x00456A10 0x0013 -R LONG __cdecl DeleteRegistryValue(LPCTSTR lpValueName); +0x00456A30 0x005E -R bool __cdecl GetRegistryDwordValue(LPCTSTR lpValueName, DWORD *pValue, DWORD defaultValue); +0x00456A90 0x0076 -R bool __cdecl GetRegistryBoolValue(LPCTSTR lpValueName, bool *pValue, bool defaultValue); +0x00456B10 0x005C -R bool __cdecl GetRegistryFloatValue(LPCTSTR lpValueName, double *value, double defaultValue); +0x00456B70 0x0071 -R bool __cdecl GetRegistryBinaryValue(LPCTSTR lpValueName, LPBYTE value, DWORD valueSize, LPBYTE defaultValue); +0x00456BF0 0x0095 -R bool __cdecl GetRegistryStringValue(LPCTSTR lpValueName, LPTSTR value, DWORD maxSize, LPCTSTR defaultValue); +0x00456C90 0x0091 -R bool __cdecl GetRegistryGuidValue(LPCTSTR lpValueName, GUID *value, GUID *defaultValue); +0x00456D30 0x0037 -R void __thiscall SE_ReleaseBitmapResource(BITMAP_RESOURCE *bmpRsrc); +0x00456D70 0x00C4 -R void __thiscall SE_LoadBitmapResource(BITMAP_RESOURCE *bmpRsrc, LPCTSTR lpName); +0x00456E40 0x0064 -R void __thiscall SE_DrawBitmap(BITMAP_RESOURCE *bmpRsrc, HDC hdc, int32_t x, int32_t y); +0x00456EB0 0x001C -R void __thiscall SE_UpdateBitmapPalette(BITMAP_RESOURCE *bmpRsrc, HWND hWnd, HWND hSender); +0x00456ED0 0x0057 -R void __thiscall SE_ChangeBitmapPalette(BITMAP_RESOURCE *bmpRsrc, HWND hWnd); +0x00456F30 0x0061 -R bool __cdecl SE_RegisterSetupWindowClass(void); +0x00456FA0 0x023A -R LRESULT __stdcall SE_SetupWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); +0x004571E0 0x0026 -R void __cdecl SE_PassMessageToImage(HWND hWnd, UINT uMsg, WPARAM wParam); +0x00457210 0x006E -R void __cdecl UT_MemBlt(BYTE *dstBuf, DWORD dstX, DWORD dstY, DWORD width, DWORD height, DWORD dstPitch, BYTE *srcBuf, DWORD srcX, DWORD srcY, DWORD srcPitch); +0x00457280 0x001E + void __cdecl Matrix_Push(void); +0x0045729E 0x0033 + void __cdecl Matrix_PushUnit(void); +0x004572D4 0x0061 + void __fastcall Output_FlatA(int32_t y0, int32_t y1, uint8_t color_idx); // actually, __watcall, which is esoteric and rarely supported +0x00457335 0x013A + void __fastcall Output_TransA(int32_t y0, int32_t y1, uint8_t depth_q); // actually, __watcall, which is esoteric and rarely supported +0x0045746F 0x0160 + void __fastcall Output_GourA(int32_t y0, int32_t y1, uint8_t color_idx); // actually, __watcall, which is esoteric and rarely supported +0x004575CF 0x02FD + void __fastcall Output_GTMapA(int32_t y0, int32_t y1, uint8_t *tex_page); // actually, __watcall, which is esoteric and rarely supported +0x004578CC 0x0341 + void __fastcall Output_WGTMapA(int32_t y0, int32_t y1, uint8_t *tex_page); // actually, __watcall, which is esoteric and rarely supported +0x00457C10 0x0048 + int32_t __fastcall Math_Atan(int32_t x, int32_t y); +0x00457C58 0x0006 + int32_t __fastcall Math_Cos(int16_t angle); +0x00457C5E 0x001B + int32_t __fastcall Math_Sin(int16_t angle); +0x00457C79 0x001A + int32_t __fastcall Math_SinImpl(int16_t angle); +0x00457C93 0x002C + uint32_t __fastcall Math_Sqrt(uint32_t n); # VARIABLES # Flags: # - to do # + decompiled -# Offset Flags Declaration - -00464060 - uint32_t g_PerspectiveDistance = 0x3000000; -00464068 - void (*__cdecl g_PolyDrawRoutines[9])(const int16_t *); -0046408C - float g_RhwFactor = 335544320.0f; // 10*2**25 -004640B0 - int32_t g_CineTrackID = 1; -004640B8 - int32_t g_CineTickRate = 0x8000; // 0x8000 = PHD_ONE/TICKS_PER_FRAME -004640BC - int16_t g_CD_TrackID = -1; -004640C4 - int32_t g_FlipEffect = -1; -004641F0 - int32_t g_AssaultBestTime = -1; -004641F8 - void (*__cdecl g_EffectRoutines[32])(ITEM_INFO *item); -004642E8 - int16_t g_GF_NumSecrets = 3; -00464310 - int16_t g_CineTargetAngle = 0x4000; // PHD_90 -004644E0 - int32_t g_OverlayStatus = 1; -004654E0 - int16_t g_Inv_MainObjectsCount = 8; -00465604 - int16_t g_Inv_OptionObjectsCount = 4; -00465618 - BOOL g_GymInvOpenEnabled = TRUE; -00465A50 - int16_t g_Inv_Chosen = -1; -00465A54 - INVENTORY_MODE g_Inv_Mode = INV_TITLE_MODE; -00465A5C - int16_t g_OptionSoundVolume = 165; // NOTE: value should be 10 -00465A60 - int16_t g_OptionMusicVolume = 255; // NOTE: should be 10 -00465AD4 - int32_t g_JumpPermitted = 1; -00465AD8 - int16_t g_LaraOldSlideAngle = 1; -00465CD0 - void (*__cdecl g_LaraControlRoutines[71])(ITEM_INFO *item, COLL_INFO *coll); -00465DF0 - void (*__cdecl g_ExtraControlRoutines[11])(ITEM_INFO *item, COLL_INFO *coll); -00465E20 - void (*__cdecl g_LaraCollisionRoutines[71])(ITEM_INFO *item, COLL_INFO *coll); -00466290 - int8_t g_TextSpacing[80]; -004662E0 - int8_t g_TextASCIIMap[]; -00466400 - int32_t g_BGND_PaletteIndex = -1; -00466480 - double g_GameSizer = 1.0; -00466488 - double g_GameSizerCopy = 1.0; -00466490 - int32_t g_FadeValue = 0x100000; -00466494 - int32_t g_FadeLimit = 0x100000; -00466498 - int32_t g_FadeAdder = 0x8000; -004664E8 - const char *g_ErrorMessages[43]; -00466BB0 + int32_t g_RandControl; -00466BB4 + int32_t g_RandDraw; -00466F70 - CONTROL_LAYOUT g_Layout[2]; -00467DD0 + const int32_t g_AtanBaseTable[8]; -00467DF0 + const int16_t g_AtanAngleTable[0x800]; -00468DF4 + const int16_t g_SinTable[0x402]; -0046C300 - int32_t g_MidSort = 0; -0046C304 - float g_ViewportAspectRatio = 0.0f; -0046C308 - int32_t g_XGenY1; -0046C30C - int32_t g_XGenY2; -0046C310 - GOURAUD_ENTRY g_GouraudTable[256]; -0046E310 - int32_t g_PhdWinTop; -0046E318 - PHD_SPRITE g_PhdSprites[512]; -00470318 - int32_t g_LsAdder; -0047031C - float g_FltWinBottom; -00470320 - float g_FltResZBuf; -00470324 - float g_FltResZ; -00470328 - void (*__cdecl g_Output_InsertTransQuad)(int32_t x, int32_t y, int32_t width, int32_t height, int32_t z); -0047032C - int32_t g_PhdWinHeight; -00470330 - int32_t g_PhdWinCenterX; -00470334 - int32_t g_PhdWinCenterY; -00470338 - int16_t g_LsYaw; -0047033C - void (*__cdecl g_Output_InsertTrans8)(const PHD_VBUF *vbuf, int16_t shade); -00470340 - float g_FltWinTop; -00470348 - SORT_ITEM g_SortBuffer[4000]; -00478048 - float g_FltWinLeft; -0047804C - int16_t g_PhdWinMinY; -00478058 - int32_t g_PhdFarZ; -0047805C - float g_FltRhwOPersp; -00478060 - int32_t g_PhdWinBottom; -00478064 - int32_t g_PhdPersp; -00478068 - int32_t g_PhdWinLeft; -0047806C - void (*__cdecl g_Output_InsertFlatRect)(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); -00478070 - int16_t g_Info3DBuffer[120000]; -004B29F0 - int32_t g_PhdWinMaxX; -004B29F4 - int32_t g_PhdNearZ; -004B29F8 - float g_FltResZORhw; -004B29FC - float g_FltFarZ; -004B2A00 - float g_FltWinCenterX; -004B2A04 - float g_FltWinCenterY; -004B2A08 - int32_t g_PhdScreenHeight; -004B2A0C - uint8_t *g_PrintSurfacePtr; -004B2A10 - int16_t g_PhdWinMinX; -004B2A14 - float g_FltPerspONearZ; -004B2A18 - float g_FltRhwONearZ; -004B2A1C - int32_t g_PhdWinMaxY; -004B2A20 - void (*__cdecl g_Output_InsertSprite)(int32_t z, int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t sprite_idx, int16_t shade); -004B2A24 - float g_FltNearZ; -004B2A28 - MATRIX *g_MatrixPtr; -004B2A2C - const int16_t *(*__cdecl g_Output_DrawObjectGT3)(const int16_t*, int32_t, SORT_TYPE); -004B2A30 - const int16_t *(*__cdecl g_Output_DrawObjectGT4)(const int16_t*, int32_t, SORT_TYPE); -004B2A38 - int32_t g_RandomTable[32]; -004B2AB8 - float g_FltPersp; -004B2AC0 - MATRIX g_W2VMatrix; -004B2AF0 - int16_t *g_Info3DPtr; -004B2AF4 - int32_t g_PhdWinWidth; -004B2AF8 - void (*__cdecl g_Output_InsertLine)(int32_t, int32_t, int32_t, int32_t, int32_t, uint8_t); -004B2B00 - PHD_TEXTURE g_PhdTextureInfo[0x800]; -004BCB00 - int32_t g_PhdViewDistance; -004BCB04 - int16_t g_LsPitch; -004BCB08 - const int16_t *(*__cdecl g_Output_DrawObjectG4)(const int16_t*,int32_t, SORT_TYPE); -004BCB10 - int16_t g_ShadesTable[32]; -004BCB50 - const int16_t *(*__cdecl g_Output_DrawObjectG3)(const int16_t*,int32_t, SORT_TYPE); -004BCB58 - MATRIX g_MatrixStack[]; -004BD2D8 - DEPTHQ_ENTRY g_DepthQTable[32]; -004BF3D8 - int32_t g_PhdScreenWidth; -004BF3DC - int32_t g_LsDivider; -004BF3E0 - PHD_VBUF g_PhdVBuf[1500]; -004CAF60 - void *g_XBuffer; // no-dereferencing -004D6AE0 - uint8_t *g_TexturePageBuffer8[32]; -004D6B60 - float g_FltWinRight; -004D6B68 - XYZ_32 g_LsVectorView; -004D6B78 - float g_WibbleTable[32]; -004D6BF8 - int32_t g_PhdWinRight; -004D6BFC - int32_t g_SurfaceCount; -004D6C00 - SORT_ITEM *g_Sort3DPtr; -004D6C0C - int32_t g_WibbleOffset; -004D6C10 - int32_t g_IsWibbleEffect; -004D6C14 - int32_t g_IsWaterEffect; -004D6CD8 - VERTEX_INFO g_VBuffer[20]; -004D6F78 - int8_t g_IsShadeEffect; -004D6F80 - D3DTLVERTEX g_VBufferD3D[32]; -004D7380 - PALETTEENTRY g_GamePalette16[256]; -004D7780 - int32_t g_CineFrameCurrent; -004D778C - int32_t g_IsChunkyCamera; -004D7794 - int32_t g_NoInputCounter; -004D7798 - BOOL g_IsResetFlag; -004D779C - int32_t g_FlipTimer; -004D77A0 - int32_t g_LOSNumRooms = 0; -004D77A4 - BOOL g_StopInventory; -004D77AC - BOOL g_IsDemoLevelType; -004D77B0 - BOOL g_IsDemoLoaded; -004D77C0 - int32_t g_BoundStart; -004D77C4 - int32_t g_BoundEnd; -004D77E0 - int32_t g_IsAssaultTimerDisplay; -004D77E4 - BOOL g_IsAssaultTimerActive; -004D77E8 - BOOL g_IsMonkAngry; -004D780C - int8_t g_GF_StartGame; -004D791C + int32_t g_OldGameTimer; -004D7920 + BOOL g_FlashState; -004D7924 + int32_t g_FlashCounter; -004D7928 + int32_t g_OldHitPoints; -004D792C - TEXTSTRING *g_AmmoTextInfo; -004D7930 - TEXTSTRING *g_DisplayModeTextInfo; -004D7934 - DWORD g_DisplayModeInfoTimer; -004D7938 - UINT16 g_Inv_MainCurrent; -004D793C - UINT16 g_Inv_KeyObjectsCount; -004D7940 - UINT16 g_Inv_KeysCurrent; -004D7944 - UINT16 g_Inv_OptionCurrent; -004D7954 - TEXTSTRING* g_Inv_RingText; -004D795C - TEXTSTRING* g_Inv_UpArrow1; -004D7960 - TEXTSTRING* g_Inv_UpArrow2; -004D7964 - TEXTSTRING* g_Inv_DownArrow1; -004D7968 - TEXTSTRING* g_Inv_DownArrow2; -004D796C - uint32_t g_InputDB; -004D7978 - uint16_t g_Inv_IsActive; -004D79A0 - BOOL g_Inv_DemoMode; -004D79B4 - BOOL g_Inv_IsOptionsDelay; -004D79B8 - int32_t g_Inv_OptionsDelayCounter; -004D79BC - uint16_t g_SoundOptionLine; -004D79C0 - REQUEST_INFO g_StatsRequester; -004D7BD8 - ASSAULT_STATS g_Assault; -004D7C38 - int32_t g_LevelItemCount; -004D7C3C - int32_t g_HealthBarTimer; -004D7C80 - int32_t g_SoundTrackIds[128]; -004D7EBC - LPDIRECT3DDEVICE2 g_D3DDev; -004D7EE4 - bool g_IsGameWindowCreated; -004D7EE8 - bool g_IsGameWindowUpdating; -004D7EEC - bool g_IsDDrawGameWindowShow; -004D7EF0 - int32_t g_MinWindowClientWidth; -004D7ED0 - int32_t g_MinWindowClientHeight; -004D8388 - int32_t g_MinWindowWidth; -004D838C - int32_t g_MinWindowHeight; -004D7EF4 - bool g_IsGameWindowShow; -004D7EF8 - bool g_IsMinWindowSizeSet; -004D7EFC - int32_t g_MaxWindowClientWidth; -004D7F00 - int32_t g_GameWindowWidth; -004D7F04 - bool g_IsMinMaxInfoSpecial; -004D7F08 - bool g_IsGameFullScreen; -004D7F0C - bool g_IsGameWindowMaximized; -004D7F10 - HWND g_GameWindowHandle; -004D7F14 - int32_t g_GameWindowHeight; -004D7F18 - DISPLAY_ADAPTER_NODE* g_PrimaryDisplayAdapter; -004D7F20 - DISPLAY_ADAPTER g_CurrentDisplayAdapter; -004D8338 - uint32_t g_LockedBufferCount; -004D833C - int32_t g_GameWindowPositionX; -004D8340 - int32_t g_GameWindowPositionY; -004D8348 - DISPLAY_ADAPTER_LIST g_DisplayAdapterList; -004D8354 - int32_t g_MaxWindowClientHeight; -004D8358 - bool g_IsMessageLoopClosed; -004D835C - int32_t g_MaxWindowWidth; -004D7EDC - int32_t g_MaxWindowHeight; -004D8360 - bool g_IsMaxWindowSizeSet; -004D8364 - uint32_t g_AppResultCode; -004D8368 - int32_t g_FullScreenWidth; -004D836C - int32_t g_FullScreenHeight; -004D8370 - int32_t g_FullScreenBPP; -004D8374 - int32_t g_FullScreenVGA; -004D8378 - uint8_t g_IsGameToExit; -004D8568 - int32_t g_ScreenSizer; -004D856C - int32_t g_IsVidSizeLock; -004D8570 - DWORD g_SampleFreqs[256]; -004D8970 - SOUND_ADAPTER_LIST g_SoundAdapterList; -004D8980 - LPDIRECTSOUNDBUFFER g_SampleBuffers[256]; -004D8D80 - uint8_t g_IsSoundEnabled; -004D8D84 - LPDIRECTSOUND g_DSound; -004D8D88 - int32_t g_ChannelSamples[32]; -004D8E08 - LPDIRECTSOUNDBUFFER g_ChannelBuffers[32]; -004D8E8C - SOUND_ADAPTER g_CurrentSoundAdapter; -004D8EAC - SOUND_ADAPTER_NODE *g_PrimarySoundAdapter; -004D8EB0 - LPDDS g_RenderBufferSurface; -004D92B8 - LPDDS g_ThirdBufferSurface; -004D92BC - LPDDS g_PictureBufferSurface; -004D92C0 - LPDDS g_ZBufferSurface; -004D92C8 - LPDDS g_PrimaryBufferSurface; -004D9338 - int32_t g_GameVidWidth; -004D933C - int32_t g_GameVidHeight; -004D9340 - int32_t g_GameVidBPP; -004D934C - int32_t g_UVAdd; -004D9351 - int8_t g_GameVid_IsWindowedVGA; -004D9EAC - int32_t g_IsFMVPlaying; -004D9EC0 - int32_t g_CurrentLevel; -004D9EC4 - int32_t g_LevelComplete; -004D9ED8 - D3DTLVERTEX g_HWR_VertexBuffer[0x2000]; -00519EE0 - HWR_TEX_HANDLE g_HWR_PageHandles[32]; -00519F60 - D3DTLVERTEX *g_HWR_VertexPtr; -0051A0CC - void *g_GameMemoryPtr; -0051A0D0 - BOOL g_ConflictLayout[14]; -0051A108 - uint8_t g_DIKeys[256]; -0051A208 - int32_t g_Input; -0051A20C - int8_t g_IsVidModeLock; -0051A210 - int32_t g_JoyKeys; -0051A214 + int32_t g_JoyXPos; -0051A218 + int32_t g_JoyYPos; -0051A220 + int32_t g_MediPackCooldown; -0051A224 + int8_t g_IsF3Pressed; -0051A228 + int8_t g_IsF4Pressed; -0051A22C + int8_t g_IsF7Pressed; -0051A230 + int8_t g_IsF8Pressed; -0051A234 + int8_t g_IsF11Pressed; -0051A238 - HINSTANCE g_GameModule; -0051A23C - char *g_CmdLine; -0051A240 - int32_t g_ScreenshotCounter; -0051B918 - RECT g_PhdWinRect; -0051B928 - int32_t g_HiRes; -0051B930 - RGB_888 g_GamePalette8[256]; -0051BCC0 - APP_SETTINGS g_SavedAppSettings; -0051BD20 - char g_ErrorMessage[128]; -0051BDA8 - int32_t g_MasterVolume; -0051BDAC - MCIDEVICEID g_MciDeviceID; -0051BDB0 - int32_t g_CD_LoopTrack; -0051C820 - TEXTSTRING g_TextstringTable[64]; -0051D6A0 - int16_t g_TextstringCount = 0; -0051D6C0 - char g_TextstringBuffers[64][64]; -0051E6C4 - int32_t g_SoundIsActive; -0051E9E0 - SAVEGAME_INFO g_SaveGame; -005206E0 - LARA_INFO g_Lara; -005207BC - ITEM_INFO *g_LaraItem; -005207C0 - FX_INFO *g_Effects; -005207C4 - int16_t g_NextEffectFree; -005207C6 - int16_t g_NextItemFree; -005207C8 - int16_t g_NextItemActive; -005207CA - int16_t g_NextEffectActive; -005207CC - int16_t g_PrevItemActive; -00521CA0 - PICKUP_INFO g_Pickups[12]; -00521DE0 - GAME_FLOW g_GameFlow; -00521FDC - int32_t g_SoundFxCount; -00522000 - OBJECT_INFO g_Objects[265]; -005252B0 - int16_t **g_Meshes; -005252C0 - MATRIX g_IMMatrixStack[256]; -005258F0 - int32_t g_IMFrac; -005258F4 - ANIM_STRUCT *g_Anims; -00525BE8 - int32_t *g_Bones; -00526180 - int32_t g_RoomCount; -00526184 - int32_t g_IMRate; -00526188 - MATRIX *g_IMMatrixPtr; -0052618C - ROOM_INFO *g_Rooms; -00526240 - int32_t g_FlipStatus; -00526288 - int16_t *g_TriggerIndex; -005262A0 - int32_t g_LOSRooms[20]; -005262F0 - ITEM_INFO *g_Items; -005262F6 - int16_t g_NumCineFrames; -005262F8 - CINE_FRAME *g_CineData = NULL; -00526300 - PHD_3DPOS g_CinePos; -00526314 - int16_t g_CineFrameIdx; -00526320 - CAMERA_INFO g_Camera; -005263CC - BOX_INFO *g_Boxes; -004D855C - LPDIRECTINPUT g_DInput; -004D8560 - LPDIRECTINPUTDEVICE IDID_SysKeyboard; -0051BDA0 - BOOL g_IsTitleLoaded; -004D7980 - int32_t g_Inv_ExtraData[8]; -004D8394 - int32_t g_MessageLoopCounter; -004D8384 - bool g_IsGameWindowMinimized; -004D8390 - bool g_IsGameWindowActive; -004D837C - int32_t g_GameWindowY; -004D7EE0 - LPDIRECTDRAW3 g_DDraw; -004D8380 - int32_t g_GameWindowX; -00463150 - GUID g_IID_IDirectDrawSurface3; -004640A0 + BITE_INFO g_CrowBite; -00464090 + BITE_INFO g_BirdBite; -005263C0 - int16_t *g_FlyZone[2]; -00526398 - int16_t *g_GroundZone[][2]; -005263C8 - uint16_t *g_Overlap; -005206C0 - CREATURE_INFO *g_BaddieSlots; -00526312 - int16_t g_CineLevelID; -005252B8 - int32_t g_DrawRoomsCount; -00525B20 - int16_t g_DrawRoomsArray[100]; -00525BEC - int32_t g_DynamicLightCount; -004D7784 - int32_t g_CineTickCount; -004D7788 - int32_t g_OriginalRoom; -00465518 - INVENTORY_ITEM *g_Inv_MainList[]; -00465608 - INVENTORY_ITEM *g_Inv_OptionList[]; -004655A8 - INVENTORY_ITEM *g_Inv_KeysList[]; -004644F8 - int32_t g_Inv_NFrames; -00525C00 - STATIC_INFO g_StaticObjects[256]; +# Offset Flag Declaration + +0x00464060 - uint32_t g_PerspectiveDistance = 0x3000000; +0x00464068 - void (*__cdecl g_PolyDrawRoutines[9])(const int16_t *); +0x0046408C - float g_RhwFactor = 335544320.0f; // 10*2**25 +0x004640B0 - int32_t g_CineTrackID = 1; +0x004640B8 - int32_t g_CineTickRate = 0x8000; // 0x8000 = PHD_ONE/TICKS_PER_FRAME +0x004640BC - int16_t g_CD_TrackID = -1; +0x004640C4 - int32_t g_FlipEffect = -1; +0x004641F0 - int32_t g_AssaultBestTime = -1; +0x004641F8 - void (*__cdecl g_EffectRoutines[32])(ITEM_INFO *item); +0x004642E8 - int16_t g_GF_NumSecrets = 3; +0x00464310 - int16_t g_CineTargetAngle = 0x4000; // PHD_90 +0x004644E0 - int32_t g_OverlayStatus = 1; +0x004654E0 - int16_t g_Inv_MainObjectsCount = 8; +0x00465604 - int16_t g_Inv_OptionObjectsCount = 4; +0x00465618 - BOOL g_GymInvOpenEnabled = TRUE; +0x00465A50 - int16_t g_Inv_Chosen = -1; +0x00465A54 - INVENTORY_MODE g_Inv_Mode = INV_TITLE_MODE; +0x00465A5C - int16_t g_OptionSoundVolume = 165; // NOTE: value should be 10 +0x00465A60 - int16_t g_OptionMusicVolume = 255; // NOTE: should be 10 +0x00465AD4 - int32_t g_JumpPermitted = 1; +0x00465AD8 - int16_t g_LaraOldSlideAngle = 1; +0x00465CD0 - void (*__cdecl g_LaraControlRoutines[71])(ITEM_INFO *item, COLL_INFO *coll); +0x00465DF0 - void (*__cdecl g_ExtraControlRoutines[11])(ITEM_INFO *item, COLL_INFO *coll); +0x00465E20 - void (*__cdecl g_LaraCollisionRoutines[71])(ITEM_INFO *item, COLL_INFO *coll); +0x00466290 - int8_t g_TextSpacing[80]; +0x004662E0 - int8_t g_TextASCIIMap[]; +0x00466400 - int32_t g_BGND_PaletteIndex = -1; +0x00466480 - double g_GameSizer = 1.0; +0x00466488 - double g_GameSizerCopy = 1.0; +0x00466490 - int32_t g_FadeValue = 0x100000; +0x00466494 - int32_t g_FadeLimit = 0x100000; +0x00466498 - int32_t g_FadeAdder = 0x8000; +0x004664E8 - const char *g_ErrorMessages[43]; +0x00466BB0 + int32_t g_RandControl; +0x00466BB4 + int32_t g_RandDraw; +0x00466F70 - CONTROL_LAYOUT g_Layout[2]; +0x00467DD0 + const int32_t g_AtanBaseTable[8]; +0x00467DF0 + const int16_t g_AtanAngleTable[0x800]; +0x00468DF4 + const int16_t g_SinTable[0x402]; +0x0046C300 - int32_t g_MidSort = 0; +0x0046C304 - float g_ViewportAspectRatio = 0.0f; +0x0046C308 - int32_t g_XGenY1; +0x0046C30C - int32_t g_XGenY2; +0x0046C310 - GOURAUD_ENTRY g_GouraudTable[256]; +0x0046E310 - int32_t g_PhdWinTop; +0x0046E318 - PHD_SPRITE g_PhdSprites[512]; +0x00470318 - int32_t g_LsAdder; +0x0047031C - float g_FltWinBottom; +0x00470320 - float g_FltResZBuf; +0x00470324 - float g_FltResZ; +0x00470328 - void (*__cdecl g_Output_InsertTransQuad)(int32_t x, int32_t y, int32_t width, int32_t height, int32_t z); +0x0047032C - int32_t g_PhdWinHeight; +0x00470330 - int32_t g_PhdWinCenterX; +0x00470334 - int32_t g_PhdWinCenterY; +0x00470338 - int16_t g_LsYaw; +0x0047033C - void (*__cdecl g_Output_InsertTrans8)(const PHD_VBUF *vbuf, int16_t shade); +0x00470340 - float g_FltWinTop; +0x00470348 - SORT_ITEM g_SortBuffer[4000]; +0x00478048 - float g_FltWinLeft; +0x0047804C - int16_t g_PhdWinMinY; +0x00478058 - int32_t g_PhdFarZ; +0x0047805C - float g_FltRhwOPersp; +0x00478060 - int32_t g_PhdWinBottom; +0x00478064 - int32_t g_PhdPersp; +0x00478068 - int32_t g_PhdWinLeft; +0x0047806C - void (*__cdecl g_Output_InsertFlatRect)(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t z, uint8_t color_idx); +0x00478070 - int16_t g_Info3DBuffer[120000]; +0x004B29F0 - int32_t g_PhdWinMaxX; +0x004B29F4 - int32_t g_PhdNearZ; +0x004B29F8 - float g_FltResZORhw; +0x004B29FC - float g_FltFarZ; +0x004B2A00 - float g_FltWinCenterX; +0x004B2A04 - float g_FltWinCenterY; +0x004B2A08 - int32_t g_PhdScreenHeight; +0x004B2A0C - uint8_t *g_PrintSurfacePtr; +0x004B2A10 - int16_t g_PhdWinMinX; +0x004B2A14 - float g_FltPerspONearZ; +0x004B2A18 - float g_FltRhwONearZ; +0x004B2A1C - int32_t g_PhdWinMaxY; +0x004B2A20 - void (*__cdecl g_Output_InsertSprite)(int32_t z, int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t sprite_idx, int16_t shade); +0x004B2A24 - float g_FltNearZ; +0x004B2A28 - MATRIX *g_MatrixPtr; +0x004B2A2C - const int16_t *(*__cdecl g_Output_DrawObjectGT3)(const int16_t*, int32_t, SORT_TYPE); +0x004B2A30 - const int16_t *(*__cdecl g_Output_DrawObjectGT4)(const int16_t*, int32_t, SORT_TYPE); +0x004B2A38 - int32_t g_RandomTable[32]; +0x004B2AB8 - float g_FltPersp; +0x004B2AC0 - MATRIX g_W2VMatrix; +0x004B2AF0 - int16_t *g_Info3DPtr; +0x004B2AF4 - int32_t g_PhdWinWidth; +0x004B2AF8 - void (*__cdecl g_Output_InsertLine)(int32_t, int32_t, int32_t, int32_t, int32_t, uint8_t); +0x004B2B00 - PHD_TEXTURE g_PhdTextureInfo[0x800]; +0x004BCB00 - int32_t g_PhdViewDistance; +0x004BCB04 - int16_t g_LsPitch; +0x004BCB08 - const int16_t *(*__cdecl g_Output_DrawObjectG4)(const int16_t*,int32_t, SORT_TYPE); +0x004BCB10 - int16_t g_ShadesTable[32]; +0x004BCB50 - const int16_t *(*__cdecl g_Output_DrawObjectG3)(const int16_t*,int32_t, SORT_TYPE); +0x004BCB58 - MATRIX g_MatrixStack[]; +0x004BD2D8 - DEPTHQ_ENTRY g_DepthQTable[32]; +0x004BF3D8 - int32_t g_PhdScreenWidth; +0x004BF3DC - int32_t g_LsDivider; +0x004BF3E0 - PHD_VBUF g_PhdVBuf[1500]; +0x004CAF60 - void *g_XBuffer; // no-dereferencing +0x004D6AE0 - uint8_t *g_TexturePageBuffer8[32]; +0x004D6B60 - float g_FltWinRight; +0x004D6B68 - XYZ_32 g_LsVectorView; +0x004D6B78 - float g_WibbleTable[32]; +0x004D6BF8 - int32_t g_PhdWinRight; +0x004D6BFC - int32_t g_SurfaceCount; +0x004D6C00 - SORT_ITEM *g_Sort3DPtr; +0x004D6C0C - int32_t g_WibbleOffset; +0x004D6C10 - int32_t g_IsWibbleEffect; +0x004D6C14 - int32_t g_IsWaterEffect; +0x004D6CD8 - VERTEX_INFO g_VBuffer[20]; +0x004D6F78 - int8_t g_IsShadeEffect; +0x004D6F80 - D3DTLVERTEX g_VBufferD3D[32]; +0x004D7380 - PALETTEENTRY g_GamePalette16[256]; +0x004D7780 - int32_t g_CineFrameCurrent; +0x004D778C - int32_t g_IsChunkyCamera; +0x004D7794 - int32_t g_NoInputCounter; +0x004D7798 - BOOL g_IsResetFlag; +0x004D779C - int32_t g_FlipTimer; +0x004D77A0 - int32_t g_LOSNumRooms = 0; +0x004D77A4 - BOOL g_StopInventory; +0x004D77AC - BOOL g_IsDemoLevelType; +0x004D77B0 - BOOL g_IsDemoLoaded; +0x004D77C0 - int32_t g_BoundStart; +0x004D77C4 - int32_t g_BoundEnd; +0x004D77E0 - int32_t g_IsAssaultTimerDisplay; +0x004D77E4 - BOOL g_IsAssaultTimerActive; +0x004D77E8 - BOOL g_IsMonkAngry; +0x004D780C - int8_t g_GF_StartGame; +0x004D791C + int32_t g_OldGameTimer; +0x004D7920 + BOOL g_FlashState; +0x004D7924 + int32_t g_FlashCounter; +0x004D7928 + int32_t g_OldHitPoints; +0x004D792C - TEXTSTRING *g_AmmoTextInfo; +0x004D7930 - TEXTSTRING *g_DisplayModeTextInfo; +0x004D7934 - DWORD g_DisplayModeInfoTimer; +0x004D7938 - UINT16 g_Inv_MainCurrent; +0x004D793C - UINT16 g_Inv_KeyObjectsCount; +0x004D7940 - UINT16 g_Inv_KeysCurrent; +0x004D7944 - UINT16 g_Inv_OptionCurrent; +0x004D7954 - TEXTSTRING* g_Inv_RingText; +0x004D795C - TEXTSTRING* g_Inv_UpArrow1; +0x004D7960 - TEXTSTRING* g_Inv_UpArrow2; +0x004D7964 - TEXTSTRING* g_Inv_DownArrow1; +0x004D7968 - TEXTSTRING* g_Inv_DownArrow2; +0x004D796C - uint32_t g_InputDB; +0x004D7978 - uint16_t g_Inv_IsActive; +0x004D79A0 - BOOL g_Inv_DemoMode; +0x004D79B4 - BOOL g_Inv_IsOptionsDelay; +0x004D79B8 - int32_t g_Inv_OptionsDelayCounter; +0x004D79BC - uint16_t g_SoundOptionLine; +0x004D79C0 - REQUEST_INFO g_StatsRequester; +0x004D7BD8 - ASSAULT_STATS g_Assault; +0x004D7C38 - int32_t g_LevelItemCount; +0x004D7C3C - int32_t g_HealthBarTimer; +0x004D7C80 - int32_t g_SoundTrackIds[128]; +0x004D7EBC - LPDIRECT3DDEVICE2 g_D3DDev; +0x004D7EE4 - bool g_IsGameWindowCreated; +0x004D7EE8 - bool g_IsGameWindowUpdating; +0x004D7EEC - bool g_IsDDrawGameWindowShow; +0x004D7EF0 - int32_t g_MinWindowClientWidth; +0x004D7ED0 - int32_t g_MinWindowClientHeight; +0x004D8388 - int32_t g_MinWindowWidth; +0x004D838C - int32_t g_MinWindowHeight; +0x004D7EF4 - bool g_IsGameWindowShow; +0x004D7EF8 - bool g_IsMinWindowSizeSet; +0x004D7EFC - int32_t g_MaxWindowClientWidth; +0x004D7F00 - int32_t g_GameWindowWidth; +0x004D7F04 - bool g_IsMinMaxInfoSpecial; +0x004D7F08 - bool g_IsGameFullScreen; +0x004D7F0C - bool g_IsGameWindowMaximized; +0x004D7F10 - HWND g_GameWindowHandle; +0x004D7F14 - int32_t g_GameWindowHeight; +0x004D7F18 - DISPLAY_ADAPTER_NODE* g_PrimaryDisplayAdapter; +0x004D7F20 - DISPLAY_ADAPTER g_CurrentDisplayAdapter; +0x004D8338 - uint32_t g_LockedBufferCount; +0x004D833C - int32_t g_GameWindowPositionX; +0x004D8340 - int32_t g_GameWindowPositionY; +0x004D8348 - DISPLAY_ADAPTER_LIST g_DisplayAdapterList; +0x004D8354 - int32_t g_MaxWindowClientHeight; +0x004D8358 - bool g_IsMessageLoopClosed; +0x004D835C - int32_t g_MaxWindowWidth; +0x004D7EDC - int32_t g_MaxWindowHeight; +0x004D8360 - bool g_IsMaxWindowSizeSet; +0x004D8364 - uint32_t g_AppResultCode; +0x004D8368 - int32_t g_FullScreenWidth; +0x004D836C - int32_t g_FullScreenHeight; +0x004D8370 - int32_t g_FullScreenBPP; +0x004D8374 - int32_t g_FullScreenVGA; +0x004D8378 - uint8_t g_IsGameToExit; +0x004D8568 - int32_t g_ScreenSizer; +0x004D856C - int32_t g_IsVidSizeLock; +0x004D8570 - DWORD g_SampleFreqs[256]; +0x004D8970 - SOUND_ADAPTER_LIST g_SoundAdapterList; +0x004D8980 - LPDIRECTSOUNDBUFFER g_SampleBuffers[256]; +0x004D8D80 - uint8_t g_IsSoundEnabled; +0x004D8D84 - LPDIRECTSOUND g_DSound; +0x004D8D88 - int32_t g_ChannelSamples[32]; +0x004D8E08 - LPDIRECTSOUNDBUFFER g_ChannelBuffers[32]; +0x004D8E8C - SOUND_ADAPTER g_CurrentSoundAdapter; +0x004D8EAC - SOUND_ADAPTER_NODE *g_PrimarySoundAdapter; +0x004D8EB0 - LPDDS g_RenderBufferSurface; +0x004D92B8 - LPDDS g_ThirdBufferSurface; +0x004D92BC - LPDDS g_PictureBufferSurface; +0x004D92C0 - LPDDS g_ZBufferSurface; +0x004D92C8 - LPDDS g_PrimaryBufferSurface; +0x004D9338 - int32_t g_GameVidWidth; +0x004D933C - int32_t g_GameVidHeight; +0x004D9340 - int32_t g_GameVidBPP; +0x004D934C - int32_t g_UVAdd; +0x004D9351 - int8_t g_GameVid_IsWindowedVGA; +0x004D9EAC - int32_t g_IsFMVPlaying; +0x004D9EC0 - int32_t g_CurrentLevel; +0x004D9EC4 - int32_t g_LevelComplete; +0x004D9ED8 - D3DTLVERTEX g_HWR_VertexBuffer[0x2000]; +0x00519EE0 - HWR_TEX_HANDLE g_HWR_PageHandles[32]; +0x00519F60 - D3DTLVERTEX *g_HWR_VertexPtr; +0x0051A0CC - void *g_GameMemoryPtr; +0x0051A0D0 - BOOL g_ConflictLayout[14]; +0x0051A108 - uint8_t g_DIKeys[256]; +0x0051A208 - int32_t g_Input; +0x0051A20C - int8_t g_IsVidModeLock; +0x0051A210 - int32_t g_JoyKeys; +0x0051A214 + int32_t g_JoyXPos; +0x0051A218 + int32_t g_JoyYPos; +0x0051A220 + int32_t g_MediPackCooldown; +0x0051A224 + int8_t g_IsF3Pressed; +0x0051A228 + int8_t g_IsF4Pressed; +0x0051A22C + int8_t g_IsF7Pressed; +0x0051A230 + int8_t g_IsF8Pressed; +0x0051A234 + int8_t g_IsF11Pressed; +0x0051A238 - HINSTANCE g_GameModule; +0x0051A23C - char *g_CmdLine; +0x0051A240 - int32_t g_ScreenshotCounter; +0x0051B918 - RECT g_PhdWinRect; +0x0051B928 - int32_t g_HiRes; +0x0051B930 - RGB_888 g_GamePalette8[256]; +0x0051BCC0 - APP_SETTINGS g_SavedAppSettings; +0x0051BD20 - char g_ErrorMessage[128]; +0x0051BDA8 - int32_t g_MasterVolume; +0x0051BDAC - MCIDEVICEID g_MciDeviceID; +0x0051BDB0 - int32_t g_CD_LoopTrack; +0x0051C820 - TEXTSTRING g_TextstringTable[64]; +0x0051D6A0 - int16_t g_TextstringCount = 0; +0x0051D6C0 - char g_TextstringBuffers[64][64]; +0x0051E6C4 - int32_t g_SoundIsActive; +0x0051E9E0 - SAVEGAME_INFO g_SaveGame; +0x005206E0 - LARA_INFO g_Lara; +0x005207BC - ITEM_INFO *g_LaraItem; +0x005207C0 - FX_INFO *g_Effects; +0x005207C4 - int16_t g_NextEffectFree; +0x005207C6 - int16_t g_NextItemFree; +0x005207C8 - int16_t g_NextItemActive; +0x005207CA - int16_t g_NextEffectActive; +0x005207CC - int16_t g_PrevItemActive; +0x00521CA0 - PICKUP_INFO g_Pickups[12]; +0x00521DE0 - GAME_FLOW g_GameFlow; +0x00521FDC - int32_t g_SoundFxCount; +0x00522000 - OBJECT_INFO g_Objects[265]; +0x005252B0 - int16_t **g_Meshes; +0x005252C0 - MATRIX g_IMMatrixStack[256]; +0x005258F0 - int32_t g_IMFrac; +0x005258F4 - ANIM_STRUCT *g_Anims; +0x00525BE8 - int32_t *g_Bones; +0x00526180 - int32_t g_RoomCount; +0x00526184 - int32_t g_IMRate; +0x00526188 - MATRIX *g_IMMatrixPtr; +0x0052618C - ROOM_INFO *g_Rooms; +0x00526240 - int32_t g_FlipStatus; +0x00526288 - int16_t *g_TriggerIndex; +0x005262A0 - int32_t g_LOSRooms[20]; +0x005262F0 - ITEM_INFO *g_Items; +0x005262F6 - int16_t g_NumCineFrames; +0x005262F8 - CINE_FRAME *g_CineData = NULL; +0x00526300 - PHD_3DPOS g_CinePos; +0x00526314 - int16_t g_CineFrameIdx; +0x00526320 - CAMERA_INFO g_Camera; +0x005263CC - BOX_INFO *g_Boxes; +0x004D855C - LPDIRECTINPUT g_DInput; +0x004D8560 - LPDIRECTINPUTDEVICE IDID_SysKeyboard; +0x0051BDA0 - BOOL g_IsTitleLoaded; +0x004D7980 - int32_t g_Inv_ExtraData[8]; +0x004D8394 - int32_t g_MessageLoopCounter; +0x004D8384 - bool g_IsGameWindowMinimized; +0x004D8390 - bool g_IsGameWindowActive; +0x004D837C - int32_t g_GameWindowY; +0x004D7EE0 - LPDIRECTDRAW3 g_DDraw; +0x004D8380 - int32_t g_GameWindowX; +0x00463150 - GUID g_IID_IDirectDrawSurface3; +0x004640A0 + BITE_INFO g_CrowBite; +0x00464090 + BITE_INFO g_BirdBite; +0x005263C0 - int16_t *g_FlyZone[2]; +0x00526398 - int16_t *g_GroundZone[][2]; +0x005263C8 - uint16_t *g_Overlap; +0x005206C0 - CREATURE_INFO *g_BaddieSlots; +0x00526312 - int16_t g_CineLevelID; +0x005252B8 - int32_t g_DrawRoomsCount; +0x00525B20 - int16_t g_DrawRoomsArray[100]; +0x00525BEC - int32_t g_DynamicLightCount; +0x004D7784 - int32_t g_CineTickCount; +0x004D7788 - int32_t g_OriginalRoom; +0x00465518 - INVENTORY_ITEM *g_Inv_MainList[]; +0x00465608 - INVENTORY_ITEM *g_Inv_OptionList[]; +0x004655A8 - INVENTORY_ITEM *g_Inv_KeysList[]; +0x004644F8 - int32_t g_Inv_NFrames; +0x00525C00 - STATIC_INFO g_StaticObjects[256];