TRX/docs/ida_variables.txt
2021-11-05 12:59:30 +01:00

1054 lines
53 KiB
Text

# Type information for the IDA importer.
#
# This is unrelated to the Tomb1Main codebase which is a subject to changes
# and improvements with regard to the original game. This file documents the
# TombATI.exe layout.
# Keep this file sorted by the offsets to find duplicates easily.
0x00401000 void phd_GenerateW2V(PHD_3DPOS *viewpos);
0x004011A0 void phd_LookAt(int32_t xsrc, int32_t ysrc, int32_t zsrc, int32_t xtar, int32_t ytar, int32_t ztar, int16_t roll);
0x00401270 void phd_GetVectorAngles(int32_t x, int32_t y, int32_t z, int16_t *dest);
0x004012F0 void phd_RotX(int16_t rx);
0x004013A0 void phd_RotY(int16_t ry);
0x00401450 void phd_RotZ(int16_t rz);
0x00401500 void phd_RotYXZ(int16_t ry, int16_t rx, int16_t rz);
0x004016F0 void phd_RotYXZpack(int32_t rots);
0x004018F0 int32_t phd_TranslateRel(int32_t x, int32_t y, int32_t z);
0x004019A0 void phd_TranslateAbs(int32_t x, int32_t y, int32_t z);
0x00401A20 int32_t phd_VisibleZClip(PHD_VBUF *vn1, PHD_VBUF *vn2, PHD_VBUF *vn3);
0x00401AD0 void phd_PutPolygons(const int16_t *obj_ptr, int32_t clip);
0x00401BD0 void S_InsertRoom(const int16_t *obj_ptr);
0x00401C40 const int16_t *calc_object_vertices(const int16_t *obj_ptr);
0x00401E00 const int16_t *calc_vertice_light(const int16_t *obj_ptr);
0x00401F70 const int16_t *calc_roomvert(const int16_t *obj_ptr);
0x004023A0 void phd_RotateLight(int16_t pitch, int16_t yaw);
0x00402470 void phd_InitPolyList();
0x004024A0 void phd_SortPolyList();
0x004024D0 void do_quickysorty(int32_t left, int32_t right);
0x004025D0 void phd_InitWindow(int32_t x, int32_t y, int32_t width, int32_t height, int32_t nearz, int32_t farz, int32_t view_angle, int32_t scrwidth, int32_t scrheight, uint8_t *scrptr);
0x004026D0 void AlterFOV(int16_t fov);
0x00402710 void Insert2DLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t z, int8_t color);
0x004027E0 void draw_poly_line(int16_t *buf_ptr);
0x00402990 void draw_poly_flat(int16_t *buf_ptr);
0x004029C0 void draw_poly_trans(int16_t *buf_ptr);
0x004029F0 void draw_poly_gouraud(int16_t *buf_ptr);
0x00402A20 void draw_poly_gtmap(int16_t *buf_ptr);
0x00402A60 void draw_poly_wgtmap(int16_t *buf_ptr);
0x00402AA0 void draw_poly_gtmap_persp(int16_t *buf_ptr);
0x00402AE0 void draw_poly_wgtmap_persp(int16_t *buf_ptr);
0x00402B20 int32_t xgen_x(int16_t *buf_ptr);
0x00402C00 int32_t xgen_xg(int16_t *buf_ptr);
0x00402D50 int32_t xgen_xguv(int16_t *buf_ptr);
0x00402F70 int32_t xgen_xguvpersp_fp(int16_t *buf_ptr);
0x004031A0 void gtmap_persp16_fp(int32_t ymin, int32_t ymax, uint8_t *tptr);
0x00403770 void wgtmap_persp16_fp(int32_t ymin, int32_t ymax, int8_t *tptr);
# 0x00403DB0 sub_403DB0
# 0x00404050 sub_404050
# 0x004046E0 sub_4046E0
# 0x00404DA0 sub_404DA0
# 0x00405330 sub_405330
# 0x004059F0 sub_4059F0
# 0x00405F90 sub_405F90
# 0x004063B0 sub_4063B0
# 0x00406710 int32_t XYGClipper(int32_t number, VERTEX_INFO *input);
# 0x00406AE0 sub_406AE0
# 0x00406D90 sub_406D90
# 0x00406FD0 sub_406FD0
# 0x004072A0 ins_poly_trans8
0x004077D0 void HWR_Error(HRESULT result);
# 0x00407804 HWR_RenderBegin_0
0x00407827 void HWR_RenderBegin();
0x0040783B void HWR_RenderEnd();
0x00407862 void HWR_RenderToggle();
0x0040787C void HWR_GetSurfaceAndPitch(LPDIRECTDRAWSURFACE surface, LPVOID *out_surface, int32_t *out_pitch);
# 0x00407911 HWR_SetupRenderContextAndRender2
0x0040795F void HWR_SetupRenderContextAndRender();
0x004079E9 void HWR_FlipPrimaryBuffer();
0x00407A49 void HWR_ClearSurface(LPDIRECTDRAWSURFACE surface);
0x00407A91 void HWR_ReleaseSurfaces();
0x00407BD2 int32_t HWR_SetHardwareVideoMode();
0x00408005 void HWR_InitialiseHardware();
0x00408323 void HWR_ShutdownHardware();
0x0040834C void HWR_PrepareFMV();
0x00408368 void HWR_FMVDone();
0x0040837F void HWR_FMVInit();
# 0x00408409 sub_408409
0x004084DE void HWR_DownloadTextures(int32_t pages);
0x005DA7E0 C3D_HTXPAL ATITexturePalette;
0x004087EA void HWR_SetPalette();
0x004089F4 void HWR_SwitchResolution();
0x00408A70 void HWR_DumpScreen();
0x00408AC7 void HWR_ClearSurfaceDepth();
0x00408B2C void HWR_BlitSurface(LPDIRECTDRAWSURFACE target, LPDIRECTDRAWSURFACE source);
0x00408B85 void HWR_CopyPicture();
0x00408C3A void HWR_DownloadPicture();
# 0x00408E0E sub_408E0E
0x00408E32 void HWR_FadeWait();
# 0x00408E41 sub_408E41
0x00408E6D void HWR_RenderTriangleStrip(C3D_VTCF *vertices, int num);
# 0x00408ED8 sub_408ED8
0x00408FF0 void HWR_SelectTexture(int tex_num);
0x0040904D int32_t HWR_ClipVertices(int32_t num, C3D_VTCF *source);
0x00409C0F void HWR_DrawFlatTriangle(PHD_VBUF *vn1, PHD_VBUF *vn2, PHD_VBUF *vn3, int32_t color);
0x00409F44 const int16_t *HWR_InsertObjectG4(const int16_t *obj_ptr, int32_t number);
0x0040A01D const int16_t *HWR_InsertObjectG3(const int16_t *obj_ptr, int32_t number);
0x0040A0C4 int32_t HWR_ZedClipper(int vertex_count, POINT_INFO *source, C3D_VTCF *vertices);
0x0040A6B1 int32_t HWR_ClipVertices2(int32_t num, C3D_VTCF *source);
0x0040B510 void HWR_DrawTexturedTriangle(PHD_VBUF *vn1, PHD_VBUF *vn2, PHD_VBUF *vn3, int16_t tpage, PHD_UV *uv1, PHD_UV *uv2, PHD_UV *uv3, uint16_t textype);
0x0040BBE2 void HWR_DrawTexturedQuad(PHD_VBUF *vn1, PHD_VBUF *vn2, PHD_VBUF *vn3, PHD_VBUF *vn4, uint16_t tpage, PHD_UV *uv1, PHD_UV *uv2, PHD_UV *uv3, PHD_UV *uv4, uint16_t textype);
0x0040C25A const int16_t *HWR_InsertObjectGT4(const int16_t *obj_ptr, int32_t number);
0x0040C34E const int16_t *HWR_InsertObjectGT3(const int16_t *obj_ptr, int32_t number);
0x0040C425 void HWR_DrawSprite(int16_t x1, int16_t y1, int16_t x2, int y2, int z, int sprnum, int shade);
0x0040C7EE void HWR_Draw2DLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, RGB888 color1, RGB888 color2);
0x0040C8E7 void HWR_DrawTranslucentQuad(int32_t x1, int32_t y1, int32_t x2, int32_t y2);
0x0040CADB void HWR_PrintShadow(PHD_VBUF *vbufs, int clip);
0x0040CC5D void HWR_RenderLightningSegment(int32_t x1, int32_t y1, int32_t z1, int thickness1, int32_t x2, int32_t y2, int32_t z2, int thickness2);
0x0040D056 void HWR_DrawLightningSegment(int x1, int y1, int z1, int thickness1, int x2, int y2, int z2, int thickness2);
0x0040D0F7 void HWR_InitPolyList();
# 0x0040D140 HWR_CacheTexture
0x0040D2E0 void HWR_OutputPolyList();
# 0x0040D465 DoNothing
0x0040D470 void BatControl(int16_t item_num);
0x0040D600 void BearControl(int16_t item_num);
0x0040DA60 void InitialiseCreature(int16_t item_num);
0x0040DAA0 void CreatureAIInfo(ITEM_INFO *item, AI_INFO *info);
0x0040DCD0 int32_t SearchLOT(LOT_INFO *LOT, int32_t expansion);
0x0040DED0 int32_t StalkBox(ITEM_INFO *item, int16_t box_number);
0x0040DFA0 int32_t ValidBox(ITEM_INFO *item, int16_t zone_number, int16_t box_number);
0x0040E040 void CreatureMood(ITEM_INFO *item, AI_INFO *info, int32_t violent);
0x0040E850 int32_t CalculateTarget(PHD_VECTOR *target, ITEM_INFO *item, LOT_INFO *LOT);
0x0040ED30 int32_t CreatureCreature(int16_t item_num);
0x0040EE40 int32_t BadFloor(int32_t x, int32_t y, int32_t z, int16_t box_height, int16_t next_height, int16_t room_number, LOT_INFO *LOT);
0x0040EEE0 int32_t CreatureAnimation(int16_t item_num, int16_t angle, int16_t tilt);
0x0040F750 int16_t CreatureTurn(ITEM_INFO *item, int16_t maximum_turn);
0x0040F830 void CreatureTilt(ITEM_INFO *item, int16_t angle);
0x0040F870 void CreatureHead(ITEM_INFO *item, int16_t required);
0x0040F8C0 int16_t CreatureEffect(ITEM_INFO *item, BITE_INFO *bite, int16_t (*generate)(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t yrot, int16_t room_num));
0x0040F920 void InitialiseCamera();
0x0040F9B0 void MoveCamera(GAME_VECTOR *ideal, int32_t speed);
0x0040FCA0 void ClipCamera(int32_t *x, int32_t *y, int32_t target_x, int32_t target_y, int32_t left, int32_t top, int32_t right, int32_t bottom);
0x0040FD40 void ShiftCamera(int32_t *x, int32_t *y, int32_t target_x, int32_t target_y, int32_t left, int32_t top, int32_t right, int32_t bottom);
0x0040FEA0 void SmartShift(GAME_VECTOR *ideal, void (*shift)(int32_t *x, int32_t *y, int32_t target_x, int32_t target_y, int32_t left, int32_t top, int32_t right, int32_t bottom));
0x00410410 void ChaseCamera(ITEM_INFO *item);
0x00410530 int32_t ShiftClamp(GAME_VECTOR *pos, int32_t clamp);
0x004107B0 void CombatCamera(ITEM_INFO *item);
0x004108F0 void LookCamera(ITEM_INFO *item);
0x00410B40 void CalculateCamera();
0x004110A0 int32_t StartCinematic(int32_t level_num);
0x00411240 int32_t DoCinematic(int32_t nframes);
0x00411370 void CalculateCinematicCamera();
0x004114A0 void ControlCinematicPlayer(int16_t item_num);
0x004114F0 void InitialisePlayer1(int16_t item_num);
0x004115C0 void InitialiseGenPlayer(int16_t item_num);
0x004115F0 void InGameCinematicCamera();
0x00411780 void GetCollisionInfo(COLL_INFO *coll, int32_t xpos, int32_t ypos, int32_t zpos, int16_t room_num, int32_t objheight);
0x00411FA0 int32_t CollideStaticObjects(COLL_INFO *coll, int32_t x, int32_t y, int32_t z, int16_t room_number, int32_t hite);
0x00412390 void GetNearByRooms(int32_t x, int32_t y, int32_t z, int32_t r, int32_t h, int16_t room_num);
0x00412660 void ShiftItem(ITEM_INFO *item, COLL_INFO *coll);
0x004126A0 void UpdateLaraRoom(ITEM_INFO *item, int32_t height);
0x00412700 void LaraBaddieCollision(ITEM_INFO *lara_item, COLL_INFO *coll);
0x00412910 void CreatureCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00412990 void ObjectCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x004129F0 void DoorCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00412A70 void TrapCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00412B10 void ItemPushLara(ITEM_INFO *item, ITEM_INFO *lara_item, COLL_INFO *coll, int32_t spazon, int32_t bigpush);
0x00412E50 int32_t TestBoundsCollide(ITEM_INFO *item, ITEM_INFO *lara_item, int32_t radius);
0x00412F30 int32_t TestLaraPosition(int16_t *bounds, ITEM_INFO *item, ITEM_INFO *lara_item);
0x00413070 void AlignLaraPosition(PHD_VECTOR *vec, ITEM_INFO *item, ITEM_INFO *lara_item);
0x00413140 int32_t MoveLaraPosition(PHD_VECTOR *vec, ITEM_INFO *item, ITEM_INFO *lara_item);
0x00413230 int32_t Move3DPosTo3DPos(PHD_3DPOS *srcpos, PHD_3DPOS *destpos, int32_t velocity, int16_t angadd);
0x004133B0 int32_t ControlPhase(int32_t nframes, int32_t demo_mode);
0x00413660 void AnimateItem(ITEM_INFO *item);
0x00413960 int32_t GetChange(ITEM_INFO *item, ANIM_STRUCT *anim);
0x00413A10 void TranslateItem(ITEM_INFO *item, int32_t x, int32_t y, int32_t z);
0x00413A80 FLOOR_INFO *GetFloor(int32_t x, int32_t y, int32_t z, int16_t *room_num);
0x00413C60 int16_t GetWaterHeight(int32_t x, int32_t y, int32_t z, int16_t room_num);
0x00413D60 int16_t GetHeight(FLOOR_INFO *floor, int32_t x, int32_t y, int32_t z);
0x00413FA0 void RefreshCamera(int16_t type, int16_t *data);
0x00414080 void TestTriggers(int16_t *data, int32_t heavy);
0x00414820 int32_t TriggerActive(ITEM_INFO *item);
0x00414880 int16_t GetCeiling(FLOOR_INFO *floor, int32_t x, int32_t y, int32_t z);
0x00414AE0 int16_t GetDoor(FLOOR_INFO *floor);
0x00414B30 int32_t LOS(GAME_VECTOR *start, GAME_VECTOR *target);
0x00414BD0 int32_t zLOS(GAME_VECTOR *start, GAME_VECTOR *target);
0x00414E50 int32_t xLOS(GAME_VECTOR *start, GAME_VECTOR *target);
0x004150C0 int32_t ClipTarget(GAME_VECTOR *start, GAME_VECTOR *target, FLOOR_INFO *floor);
0x004151A0 void FlipMap();
0x00415310 void TriggerCDTrack(int16_t value, int16_t flags, int16_t type);
0x00415520 void AlligatorControl(int16_t item_num);
0x00415850 void CrocControl(int16_t item_num);
0x00415B70 int32_t StartDemo();
0x00415CB0 void LoadLaraDemoPos();
0x00415D70 void GetDemoInput();
0x00415DA0 void RaptorControl(int16_t item_num);
0x004160F0 void DinoControl(int16_t item_num);
0x004163A0 void LaraDinoDeath(ITEM_INFO *item);
0x00416470 void SetupScreenSize();
0x00416550 void TempVideoAdjust(int32_t hi_res);
0x004167D0 void TempVideoRemove();
0x00416A60 void S_CopyBufferToScreen();
0x00416B10 void S_NoFade();
0x00416B20 void S_FadeInInventory(int32_t fade);
0x00416BB0 void S_FadeOutInventory(int32_t fade);
0x00416BE0 int32_t DrawPhaseCinematic();
0x00416C70 int32_t DrawPhaseGame();
0x00416CB0 void DrawRooms(int16_t current_room);
0x00416E30 void GetRoomBounds(int16_t room_num);
0x00416EB0 int32_t SetRoomBounds(int16_t *objptr, int16_t room_num, ROOM_INFO *parent);
0x004171E0 void PrintRooms(int16_t room_number);
0x00417400 void DrawEffect(int16_t fxnum);
0x00417510 void DrawSpriteItem(ITEM_INFO *item);
0x00417550 void DrawAnimatingItem(ITEM_INFO *item);
0x00417AA0 void DrawLara(ITEM_INFO *item);
0x004185B0 void CalculateObjectLighting(ITEM_INFO *item, int16_t *frame);
0x00418680 void DrawLaraInt(ITEM_INFO *item, int16_t *frame1, int16_t *frame2, int32_t frac, int32_t rate);
0x00419A60 void InterpolateMatrix();
0x00419C30 void InterpolateArmMatrix();
0x00419D30 int32_t GetFrames(ITEM_INFO *item, int16_t *frmptr[], int32_t *rate);
0x00419DD0 int16_t *GetBoundsAccurate(ITEM_INFO *item);
0x00419E50 int16_t *GetBestFrame(ITEM_INFO *item);
0x00419F50 int32_t SoundMakeSample(SAMPLE_DATA *sample_data);
# 0x0041A120 sub_41A120
0x0041A1D0 int32_t SoundSampleIsPlaying_(void *handle);
0x0041A200 int32_t SoundStopSample_(void *handle);
0x0041A210 int32_t ItemNearLara(PHD_3DPOS *pos, int32_t distance);
0x0041A2A0 void SoundEffects();
0x0041A310 int16_t DoBloodSplat(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t direction, int16_t room_num);
0x0041A370 void ControlBlood1(int16_t fx_num);
0x0041A400 void ControlExplosion1(int16_t fx_num);
0x0041A450 void Ricochet(GAME_VECTOR *pos);
0x0041A4D0 void ControlRicochet1(int16_t fx_num);
0x0041A500 void ControlTwinkle(int16_t fx_num);
0x0041A550 void ItemSparkle(ITEM_INFO *item, int meshmask);
0x0041A670 void FxLaraBubbles(ITEM_INFO *item);
0x0041A760 void ControlBubble1(int16_t fx_num);
0x0041A860 void Splash(ITEM_INFO *item);
0x0041A930 void ControlSplash1(int16_t fx_num);
0x0041A9B0 void ControlWaterFall(int16_t item_num);
0x0041AAD0 void FxFinishLevel(ITEM_INFO *item);
0x0041AAE0 void FxTurn180(ITEM_INFO *item);
0x0041AAF0 void FxDinoStomp(ITEM_INFO *item);
0x0041AB90 void FxLaraNormal(ITEM_INFO *item);
0x0041ABD0 void FxEarthQuake(ITEM_INFO *item);
0x0041AC50 void FxFlood(ITEM_INFO *item);
0x0041ACE0 void FxRaisingBlock(ITEM_INFO *item);
0x0041AD00 void FxChainBlock(ITEM_INFO *item);
0x0041AD50 void FxStairs2Slope(ITEM_INFO *item);
0x0041AD80 void FxSand(ITEM_INFO *item);
0x0041AE00 void FxPowerUp(ITEM_INFO *item);
0x0041AE70 void FxExplosion(ITEM_INFO *item);
0x0041AEA0 void FxFlicker(ITEM_INFO *item);
0x0041AEF0 void FxLaraHandsFree(ITEM_INFO *item);
0x0041AF00 void FxFlipMap(ITEM_INFO *item);
0x0041AF10 void FxDrawRightGun(ITEM_INFO *item);
0x0041AF90 int32_t S_LoadLevel(int32_t level_num);
0x0041AFB0 int32_t LoadLevel(const char *filename, int32_t level_num);
0x0041B3F0 int32_t LoadRooms(FILE *fp);
0x0041B710 void LoadObjects(FILE *fp);
0x0041BB50 void LoadSprites(FILE *fp);
0x0041BC60 void LoadItems(FILE *fp);
0x0041BE00 void LoadBoxes(FILE *fp);
0x0041BFC0 const char *GetFullPath(const char *path);
0x0041C020 int32_t FindCdDrive();
0x0041C0F0 uint32_t S_Colour(int32_t red, int32_t green, int32_t blue);
0x0041C180 void S_DrawScreenSprite2d(int32_t sx, int32_t sy, int32_t z, int32_t scale_h, int32_t scale_v, int32_t sprnum, int16_t shade, uint16_t flags, int page);
0x0041C2D0 void S_DrawScreenSprite(int32_t sx, int32_t sy, int32_t z, int32_t scale_h, int32_t scale_v, int16_t sprnum, int16_t shade, uint16_t flags);
0x0041C440 void S_DrawScreenLine(int32_t sx, int32_t sy, int32_t w, int32_t h, RGB888 col);
0x0041C520 void S_DrawScreenBox(int32_t sx, int32_t sy, int32_t w, int32_t h);
0x0041CBB0 void S_DrawScreenFBox(int32_t sx, int32_t sy, int32_t w, int32_t h);
0x0041CCC0 void S_FinishInventory();
0x0041CD10 void S_FadeToBlack();
0x0041CD50 void S_Wait(int32_t nframes);
0x0041CDA0 void FMVInit();
0x0041CDF0 int32_t WinPlayFMV(int32_t sequence, int32_t mode);
0x0041D040 int32_t S_PlayFMV(int32_t sequence, int32_t mode);
0x0041D0C0 int32_t StartGame(int32_t level_num);
0x0041D2C0 int32_t GameLoop(int32_t demo_mode);
0x0041D330 int32_t LevelCompleteSequence(int32_t level_num);
0x0041D5A0 void LevelStats(int32_t level_num);
0x0041D8F0 int32_t GetRandomControl();
0x0041D910 void SeedRandomControl(int32_t seed);
0x0041D920 int32_t GetRandomDraw();
0x0041D940 void SeedRandomDraw(int32_t seed);
0x0041D950 int32_t LevelIsValid(int32_t level_num);
0x0041D9B0 void GetSavedGamesList(REQUEST_INFO *requester);
0x0041DA20 int32_t S_FrontEndCheck();
0x0041DB70 int32_t S_SaveGame(SAVEGAME_INFO *save, int32_t slot);
0x0041DC70 int32_t S_LoadGame(SAVEGAME_INFO *save, int32_t slot);
0x0041DD00 void DrawGameInfo();
0x0041DEA0 void DrawHealthBar();
0x0041DF20 void MakeAmmoString(char *string);
0x0041DF50 void DrawAmmoInfo();
0x0041E0A0 void InitialisePickUpDisplay();
0x0041E0C0 void AddDisplayPickup(int16_t object_num);
0x0041E100 void S_InitialiseSystem();
0x0041E260 void S_ExitSystem(const char *message);
0x0041E2C0 void init_game_malloc();
0x0041E2F0 void *game_malloc(int32_t alloc_size, GAMEALLOC_BUFFER buf_index);
0x0041E3B0 void game_free(int32_t free_size, int32_t type);
0x0041E3E0 int32_t Key(int32_t number);
0x0041E550 void S_UpdateInput();
0x0041E760 int32_t Display_Inventory(int inv_mode);
0x0041F980 void Construct_Inventory();
0x0041FAB0 void SelectMeshes(INVENTORY_ITEM *inv_item);
0x0041FB40 void DrawInventoryItem(INVENTORY_ITEM *inv_item);
0x0041FEF0 void InitColours();
0x00420000 void RingIsOpen(RING_INFO *ring);
0x00420150 void RingIsNotOpen(RING_INFO *ring);
0x004201D0 void RingNotActive(INVENTORY_ITEM *inv_item);
0x00420980 void RingActive();
0x004209C0 int32_t Inv_AddItem(int32_t item_num);
0x004210D0 void Inv_InsertItem(INVENTORY_ITEM *inv_item);
0x00421200 int32_t Inv_RequestItem(int item_num);
0x00421280 void Inv_RemoveAllItems();
0x004212A0 int32_t Inv_RemoveItem(int32_t item_num);
0x004213B0 int32_t Inv_GetItemOption(int32_t item_num);
0x00421550 void RemoveInventoryText();
0x00421580 void Inv_RingInit(RING_INFO *ring, int16_t type, INVENTORY_ITEM **list, int16_t qty, int16_t current, IMOTION_INFO *imo);
0x00421700 void Inv_RingGetView(RING_INFO *a1, PHD_3DPOS *viewer);
0x00421760 void Inv_RingLight(RING_INFO *ring);
0x004217A0 void Inv_RingCalcAdders(RING_INFO *ring, int16_t rotation_duration);
0x004217D0 void Inv_RingDoMotions(RING_INFO *ring);
0x00421910 void Inv_RingRotateLeft(RING_INFO *ring);
0x00421940 void Inv_RingRotateRight(RING_INFO *ring);
0x00421970 void Inv_RingMotionSetup(RING_INFO *ring, int16_t status, int16_t status_target, int16_t frames);
0x004219A0 void Inv_RingMotionRadius(RING_INFO *ring, int16_t target);
0x004219D0 void Inv_RingMotionRotation(RING_INFO *ring, int16_t rotation, int16_t target);
0x00421A00 void Inv_RingMotionCameraPos(RING_INFO *ring, int16_t target);
0x00421A30 void Inv_RingMotionCameraPitch(RING_INFO *ring, int16_t target);
0x00421A50 void Inv_RingMotionItemSelect(RING_INFO *ring, INVENTORY_ITEM *inv_item);
0x00421AB0 void Inv_RingMotionItemDeselect(RING_INFO *ring, INVENTORY_ITEM *inv_item);
0x00421B10 void InitialiseItemArray(int32_t num_items);
0x00421B50 void KillItem(int16_t item_num);
0x00421C80 int16_t CreateItem();
0x00421CC0 void InitialiseItem(int16_t item_num);
0x00421EB0 void RemoveActiveItem(int16_t item_num);
0x00421F60 void RemoveDrawnItem(int16_t item_num);
0x00421FE0 void AddActiveItem(int16_t item_num);
0x00422060 void ItemNewRoom(int16_t item_num, int16_t room_num);
0x00422110 int16_t SpawnItem(ITEM_INFO *item, int16_t object_num);
0x004221D0 int32_t GlobalItemReplace(int32_t src_object_num, int32_t dst_object_num);
0x00422250 void InitialiseFXArray();
0x00422280 int16_t CreateEffect(int16_t room_num);
0x004222F0 void KillEffect(int16_t fx_num);
0x004223E0 void EffectNewRoom(int16_t fx_num, int16_t room_num);
0x00422480 void LaraAboveWater(ITEM_INFO *item, COLL_INFO *coll);
0x004225F0 void LaraAsWalk(ITEM_INFO *item, COLL_INFO *coll);
0x00422670 void LaraAsRun(ITEM_INFO *item, COLL_INFO *coll);
0x00422760 void LaraAsStop(ITEM_INFO *item, COLL_INFO *coll);
0x00422970 void LaraAsForwardJump(ITEM_INFO *item, COLL_INFO *coll);
0x00422A30 void LaraAsFastBack(ITEM_INFO *item, COLL_INFO *coll);
0x00422A90 void LaraAsTurnR(ITEM_INFO *item, COLL_INFO *coll);
0x00422B10 void LaraAsTurnL(ITEM_INFO *item, COLL_INFO *coll);
0x00422B90 void LaraAsFastFall(ITEM_INFO *item, COLL_INFO *coll);
0x00422BD0 void LaraAsHang(ITEM_INFO *item, COLL_INFO *coll);
0x00422C20 void LaraAsReach(ITEM_INFO *item, COLL_INFO *coll);
0x00422C40 void LaraAsCompress(ITEM_INFO *item, COLL_INFO *coll);
0x00422EB0 void LaraAsBack(ITEM_INFO *item, COLL_INFO *coll);
0x00422F30 void LaraAsFastTurn(ITEM_INFO *item, COLL_INFO *coll);
0x00422F80 void LaraAsStepRight(ITEM_INFO *item, COLL_INFO *coll);
0x00423000 void LaraAsStepLeft(ITEM_INFO *item, COLL_INFO *coll);
0x00423080 void LaraAsSlide(ITEM_INFO *item, COLL_INFO *coll);
0x004230B0 void LaraAsBackJump(ITEM_INFO *item, COLL_INFO *coll);
0x004230D0 void LaraAsRightJump(ITEM_INFO *item, COLL_INFO *coll);
0x004230F0 void LaraAsFallBack(ITEM_INFO *item, COLL_INFO *coll);
0x00423120 void LaraAsHangLeft(ITEM_INFO *item, COLL_INFO *coll);
0x00423160 void LaraAsHangRight(ITEM_INFO *item, COLL_INFO *coll);
0x004231A0 void LaraAsSlideBack(ITEM_INFO *item, COLL_INFO *coll);
0x004231C0 void LaraAsPushBlock(ITEM_INFO *item, COLL_INFO *coll);
0x004231F0 void LaraAsPPReady(ITEM_INFO *item, COLL_INFO *coll);
0x00423220 void LaraAsPickup(ITEM_INFO *item, COLL_INFO *coll);
0x00423250 void LaraAsSwitchOn(ITEM_INFO *item, COLL_INFO *coll);
0x00423280 void LaraAsUseKey(ITEM_INFO *item, COLL_INFO *coll);
0x004232B0 void LaraAsSpecial(ITEM_INFO *item, COLL_INFO *coll);
0x004232D0 void LaraAsUseMidas(ITEM_INFO *item, COLL_INFO *coll);
0x004232F0 void LaraAsDieMidas(ITEM_INFO *item, COLL_INFO *coll);
0x00423720 void LaraAsSwanDive(ITEM_INFO *item, COLL_INFO *coll);
0x00423750 void LaraAsFastDive(ITEM_INFO *item, COLL_INFO *coll);
0x00423790 void LaraAsGymnast(ITEM_INFO *item, COLL_INFO *coll);
0x004237A0 void LaraAsWaterOut(ITEM_INFO *item, COLL_INFO *coll);
0x004237C0 void LaraColWalk(ITEM_INFO *item, COLL_INFO *coll);
0x004239F0 void LaraColRun(ITEM_INFO *item, COLL_INFO *coll);
0x00423C00 void LaraColStop(ITEM_INFO *item, COLL_INFO *coll);
0x00423D00 void LaraColForwardJump(ITEM_INFO *item, COLL_INFO *coll);
0x00423DD0 void LaraColFastBack(ITEM_INFO *item, COLL_INFO *coll);
0x00423F40 void LaraColTurnR(ITEM_INFO *item, COLL_INFO *coll);
0x00423FF0 void LaraColDeath(ITEM_INFO *item, COLL_INFO *coll);
0x00424070 void LaraColFastFall(ITEM_INFO *item, COLL_INFO *coll);
0x004241F0 void LaraColHang(ITEM_INFO *item, COLL_INFO *coll);
0x00424260 void LaraColReach(ITEM_INFO *item, COLL_INFO *coll);
0x004243F0 void LaraColSplat(ITEM_INFO *item, COLL_INFO *coll);
0x00424460 void LaraColLand(ITEM_INFO *item, COLL_INFO *coll);
0x00424480 void LaraColCompress(ITEM_INFO *item, COLL_INFO *coll);
0x00424520 void LaraColBack(ITEM_INFO *item, COLL_INFO *coll);
0x00424690 void LaraColStepRight(ITEM_INFO *item, COLL_INFO *coll);
0x004247D0 void LaraColStepLeft(ITEM_INFO *item, COLL_INFO *coll);
0x00424910 void LaraColSlide(ITEM_INFO *item, COLL_INFO *coll);
0x00424930 void LaraColBackJump(ITEM_INFO *item, COLL_INFO *coll);
0x004249E0 void LaraColRightJump(ITEM_INFO *item, COLL_INFO *coll);
0x00424A90 void LaraColLeftJump(ITEM_INFO *item, COLL_INFO *coll);
0x00424B40 void LaraColUpJump(ITEM_INFO *item, COLL_INFO *coll);
0x00424CD0 void LaraColFallBack(ITEM_INFO *item, COLL_INFO *coll);
0x00424D80 void LaraColHangLeft(ITEM_INFO *item, COLL_INFO *coll);
0x00424DC0 void LaraColHangRight(ITEM_INFO *item, COLL_INFO *coll);
0x00424E00 void LaraColSlideBack(ITEM_INFO *item, COLL_INFO *coll);
0x00424E30 void LaraColDefault(ITEM_INFO *item, COLL_INFO *coll);
0x00424E90 void LaraColRoll(ITEM_INFO *item, COLL_INFO *coll);
0x00424F90 void LaraColRoll2(ITEM_INFO *item, COLL_INFO *coll);
0x004250A0 void LaraColSwanDive(ITEM_INFO *item, COLL_INFO *coll);
0x00425130 void LaraColFastDive(ITEM_INFO *item, COLL_INFO *coll);
0x004251D0 void LaraSlideSlope(ITEM_INFO *item, COLL_INFO *coll);
0x00425350 void LaraHangTest(ITEM_INFO *item, COLL_INFO *coll);
0x004255A0 void LaraDeflectEdgeJump(ITEM_INFO *item, COLL_INFO *coll);
0x004256C0 int32_t TestLaraVault(ITEM_INFO *item, COLL_INFO *coll);
0x00425890 int32_t LaraTestHangJump(ITEM_INFO *item, COLL_INFO *coll);
0x00425AE0 int32_t LaraTestHangJumpUp(ITEM_INFO *item, COLL_INFO *coll);
0x00425C50 int32_t TestLaraSlide(ITEM_INFO *item, COLL_INFO *coll);
0x00425D70 int32_t LaraLandedBad(ITEM_INFO *item, COLL_INFO *coll);
0x00425E30 void DrawShotgun();
0x00425F50 void UndrawShotgun();
0x004260F0 void RifleHandler(int32_t weapon_type);
0x00426470 void DrawPistols(int32_t weapon_type);
0x004265C0 void UndrawPistols(int32_t weapon_type);
0x00426830 void DrawPistolMeshes(int32_t weapon_type);
0x004268A0 void PistolHandler(int32_t weapon_type);
0x004269D0 void AnimatePistols(int32_t weapon_type);
0x00426BD0 void LaraGun();
0x00426E60 void InitialiseNewWeapon();
0x00426F20 void LaraTargetInfo(WEAPON_INFO *winfo);
0x004270C0 void LaraGetNewTarget(WEAPON_INFO *winfo);
0x004272A0 void find_target_point(ITEM_INFO *item, GAME_VECTOR *target);
0x00427360 void AimWeapon(WEAPON_INFO *winfo, LARA_ARM *arm);
0x00427430 int32_t FireWeapon(int32_t weapon_type, ITEM_INFO *target, ITEM_INFO *src, int16_t *angles);
0x00427730 void HitTarget(ITEM_INFO *item, GAME_VECTOR *hitpos, int32_t damage);
0x00427850 void LaraControl(int16_t item_num);
0x00427BD0 void LaraSwapMeshExtra();
0x00427C00 void AnimateLara(ITEM_INFO *item);
0x00427E80 void UseItem(int16_t object_num);
0x00427FD0 void ControlLaraExtra(int16_t item_num);
0x00427FF0 void InitialiseLaraLoad(int16_t item_num);
0x00428020 void InitialiseLara();
0x00428170 void InitialiseLaraInventory(int32_t level_num);
0x00428340 void LaraInitialiseMeshes(int32_t level_num);
0x00428420 void InitialiseEvilLara(int16_t item_num);
0x00428450 void ControlEvilLara(int16_t item_num);
0x00428680 void DrawEvilLara(ITEM_INFO *item);
0x004286E0 void LaraSurface(ITEM_INFO *item, COLL_INFO *coll);
0x004288A0 void LaraAsSurfSwim(ITEM_INFO *item, COLL_INFO *coll);
0x00428910 void LaraAsSurfBack(ITEM_INFO *item, COLL_INFO *coll);
0x00428970 void LaraAsSurfLeft(ITEM_INFO *item, COLL_INFO *coll);
0x004289D0 void LaraAsSurfRight(ITEM_INFO *item, COLL_INFO *coll);
0x00428A30 void LaraAsSurfTread(ITEM_INFO *item, COLL_INFO *coll);
0x00428BB0 void LaraColSurfTread(ITEM_INFO *item, COLL_INFO *coll);
0x00428BD0 void LaraColSurfBack(ITEM_INFO *item, COLL_INFO *coll);
0x00428C00 void LaraColSurfLeft(ITEM_INFO *item, COLL_INFO *coll);
0x00428C30 void LaraColSurfRight(ITEM_INFO *item, COLL_INFO *coll);
0x00428C60 void LaraSurfaceCollision(ITEM_INFO *item, COLL_INFO *coll);
0x00428D50 int32_t LaraTestWaterClimbOut(ITEM_INFO *item, COLL_INFO *coll);
0x00428F10 void LaraUnderWater(ITEM_INFO *item, COLL_INFO *coll);
0x004290C0 void LaraAsSwim(ITEM_INFO *item, COLL_INFO *coll);
0x00429140 void LaraAsGlide(ITEM_INFO *item, COLL_INFO *coll);
0x004291D0 void LaraAsTread(ITEM_INFO *item, COLL_INFO *coll);
0x00429250 void LaraAsDive(ITEM_INFO *item, COLL_INFO *coll);
0x00429270 void LaraAsUWDeath(ITEM_INFO *item, COLL_INFO *coll);
0x004292C0 void LaraColSwim(ITEM_INFO *item, COLL_INFO *coll);
0x004292E0 void LaraColUWDeath(ITEM_INFO *item, COLL_INFO *coll);
0x00429340 void LaraSwimCollision(ITEM_INFO *item, COLL_INFO *coll);
0x00429440 void LaraWaterCurrent(COLL_INFO *coll);
0x00429620 void DrawLightning(ITEM_INFO *item);
0x00429B00 void InitialiseLightning(int16_t item_num);
0x00429B80 void LightningControl(int16_t item_num);
0x00429E30 void LightningCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00429EA0 void InitialiseThorsHandle(int16_t item_num);
0x00429F30 void ThorsHandleControl(int16_t item_num);
0x0042A1F0 void ThorsHandleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x0042A240 void ThorsHeadCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
# 0x0042A2B0 sub_42A2B0
0x0042A2C0 void DB_Log(const char *fmt, ...);
0x0042A300 void InitialiseLOTArray();
0x0042A360 void DisableBaddieAI(int16_t item_num);
0x0042A3A0 int32_t EnableBaddieAI(int16_t item_num, int32_t always);
0x0042A570 void InitialiseSlot(int16_t item_num, int32_t slot);
0x0042A6B0 void CreateZone(ITEM_INFO *item);
0x0042A780 int32_t InitialiseLOT(LOT_INFO *LOT);
0x0042A7F0 int32_t phd_cos(int32_t angle);
# 0x0042A81C cosf
0x0042A850 int32_t phd_sin(int32_t angle);
# 0x0042A871 sinf
0x0042A8A0 int32_t phd_atan(int32_t x, int32_t y);
0x0042A900 uint32_t phd_sqrt(uint32_t n);
0x0042A940 void mn_reset_sound_effects();
0x0042AA30 int32_t SoundEffect(int32_t sfx_num, PHD_3DPOS *pos, uint32_t flags);
0x0042AF00 MN_SFX_PLAY_INFO *mn_get_fx_slot(int32_t sfx_num, uint32_t loudness, PHD_3DPOS *pos, int16_t mode);
0x0042AFD0 void mn_reset_ambient_loudness();
0x0042B000 void mn_stop_ambient_samples();
0x0042B080 void mn_update_sound_effects();
0x0042B300 void StopSoundEffect(int32_t sfx_num, PHD_3DPOS *pos);
0x0042B410 void mn_adjust_master_volume(int8_t volume);
0x0042B430 void InitialiseMovableBlock(int16_t item_num);
0x0042B460 void MovableBlockControl(int16_t item_num);
0x0042B5B0 void MovableBlockCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x0042B7E0 int32_t TestBlockPush(ITEM_INFO *item, int32_t blokhite, uint16_t quadrant);
0x0042B940 int32_t TestBlockPull(ITEM_INFO *item, int32_t blokhite, uint16_t quadrant);
0x0042BB90 void InitialiseRollingBlock(int16_t item_num);
0x0042BBC0 void RollingBlockControl(int16_t item_num);
0x0042BCA0 void AlterFloorHeight(ITEM_INFO *item, int32_t height);
0x0042BD60 void DrawMovableBlock(ITEM_INFO *item);
0x0042BDF0 void DrawUnclippedItem(ITEM_INFO *item);
0x0042BE60 void AbortionControl(int16_t item_num);
0x0042C330 void NatlaControl(int16_t item_num);
0x0042C910 void ControlNatlaGun(int16_t fx_num);
0x0042CA40 void InitialiseDoor(int16_t item_num);
0x0042CEF0 void DoorControl(int16_t item_num);
0x0042D130 int32_t OnDrawBridge(ITEM_INFO *item, int32_t x, int32_t y);
0x0042D1F0 void DrawBridgeFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0042D230 void DrawBridgeCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0042D270 void DrawBridgeCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x0042D2A0 void BridgeFlatFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0042D2C0 void BridgeFlatCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0042D2E0 void BridgeTilt1Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0042D330 void BridgeTilt1Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0042D380 void BridgeTilt2Floor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0042D3D0 void BridgeTilt2Ceiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0042D420 void CogControl(int16_t item_num);
0x0042D4A0 void CabinControl(int16_t item_num);
0x0042D520 void BoatControl(int16_t item_num);
0x0042D580 void Scion3Control(int16_t item_num);
0x0042D700 void EarthQuakeControl(int16_t item_num);
0x0042D770 void DoInventoryOptions(INVENTORY_ITEM *inv_item);
0x0042D9C0 void DoPassportOption(INVENTORY_ITEM *inv_item);
0x0042DE90 void DoDetailOptionHW(INVENTORY_ITEM *inv_item);
0x0042E2D0 void DoDetailOption(INVENTORY_ITEM *inv_item);
0x0042E5C0 void DoSoundOption(INVENTORY_ITEM *inv_item);
0x0042EAC0 void DoControlOption(INVENTORY_ITEM *inv_item);
0x0042F230 void S_ShowControls();
0x0042F6F0 int32_t DisplayRequester(REQUEST_INFO *req);
0x0042FC60 void S_InitialisePolyList();
0x0042FC70 int32_t S_DumpScreen();
0x0042FCC0 void S_ClearScreen();
0x0042FCE0 void S_InitialiseScreen();
0x0042FD10 void S_OutputPolyList();
0x0042FD30 int S_GetObjectBounds(int16_t *bptr);
0x0042FFA0 void S_PrintShadow(int16_t size, int16_t *bptr, ITEM_INFO *item);
0x00430100 void S_CalculateLight(int32_t x, int32_t y, int32_t z, int16_t room_num);
0x00430290 void S_CalculateStaticLight(int16_t adder);
0x004302D0 void S_DrawHealthBar(int32_t percent);
0x00430450 void S_DrawAirBar(int32_t percent);
0x004305E0 void S_SetupBelowWater(int32_t underwater);
0x00430640 void S_SetupAboveWater(int32_t underwater);
0x00430660 void S_AnimateTextures(int32_t ticks);
0x00430740 void S_DrawLightningSegment(int32_t x1, int32_t y1, int32_t z1, int32_t x2, int32_t y2, int32_t z2, int32_t width);
# 0x00430B90 decomp_pcx
0x00430CE0 void S_DisplayPicture(const char *filename);
0x00430D80 int32_t Targetable(ITEM_INFO *item, AI_INFO *info);
0x00430E00 void ControlGunShot(int16_t fx_num);
0x00430E40 int16_t GunShot(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num);
0x00430EB0 int16_t GunHit(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num);
0x00430FA0 int16_t GunMiss(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num);
0x00431090 void PeopleControl(int16_t item_num);
0x00431550 void PierreControl(int16_t item_num);
0x00431C30 void ApeVault(int16_t item_num, int16_t angle);
0x00431D40 void ApeControl(int16_t item_num);
0x004320B0 void InitialiseSkateKid(int16_t item_num);
0x004320E0 void SkateKidControl(int16_t item_num);
0x00432550 void DrawSkateKid(ITEM_INFO *item);
0x004325A0 void CowboyControl(int16_t item_num);
0x00432B60 void InitialiseBaldy(int16_t item_num);
0x00432B90 void BaldyControl(int16_t item_num);
0x00433080 void PickUpCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00433240 void PickUpScionCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x004333B0 void PickUpScion4Collision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x004334C0 void MidasCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x004336F0 void SwitchCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00433810 void SwitchCollision2(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00433900 void KeyHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00433B40 void PuzzleHoleCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x00433DE0 void SwitchControl(int16_t item_num);
0x00433E20 int32_t SwitchTrigger(int16_t item_num, int16_t timer);
0x00433EA0 int32_t KeyTrigger(int16_t item_num);
0x00433EF0 int32_t PickupTrigger(int16_t item_num);
0x00433F30 void InitialiseSaveGameItem(int16_t item_num);
0x00433F50 void RatControl(int16_t item_num);
0x00434210 void VoleControl(int16_t item_num);
0x004344D0 void InitialiseStartInfo();
0x00434520 void ModifyStartInfo(int32_t level_num);
0x004345E0 void CreateStartInfo(int level_num);
0x00434720 void CreateSaveGameInfo();
0x00434F90 void ExtractSaveGameInfo();
0x00435B70 void S_DrawSpriteRel(int32_t x, int32_t y, int32_t z, int16_t sprnum, int16_t shade);
0x00435D80 void S_DrawUISprite(int32_t x, int32_t y, int32_t scale, int16_t sprnum, int16_t shade);
0x00435ED0 int16_t *S_DrawRoomSprites(const int16_t *obj_ptr, int32_t vertex_count);
# 0x004360A0 draw_scaled_spriteC
0x004362A0 int32_t InitialiseLevel(int32_t level_num);
0x004363C0 void InitialiseLevelFlags();
0x004363E0 void BaddyObjects();
0x00437010 void TrapObjects();
0x00437370 void ObjectObjects();
# 0x00437AC0 sub_437AC0
0x00437AD0 void WinSpinMessageLoop();
# 0x00437B00 WinInReadJoystick
# 0x00437B70 OnKeyPress
0x00437BC0 int16_t KeyGet();
# 0x00437BD0 KeyClearBuffer
0x00437C00 void SoundLoadSamples(char **sample_pointers, int32_t num_samples);
0x00437CB0 SAMPLE_DATA *SoundLoadSample(char *content);
# 0x00437E00 SoundIsInitialised
0x00437E10 void *SoundPlaySample(int32_t sample_id, int32_t volume, int16_t pitch, uint16_t pan, int8_t loop);
0x00437EE0 int32_t SoundSampleIsPlaying(void *handle);
0x00437F10 int32_t SoundStopSample(void *handle);
# 0x00437F30 S_CDVolume
# 0x00437F40 TestCdDrive
# 0x00437F80 CDStop
# 0x00437FB0 CDPlay
# 0x004380B0 S_CDLoop
# 0x004380C0 CDPlayLooped
# 0x004380E0 sub_4380E0
# 0x00438340 TerminateGameWithMsg
0x00438390 void FileLoad(const char *path, char **output_data, size_t *output_size);
0x00438410 void GameMain();
# 0x00438920 CheckCheatMode
# 0x00438B60 S_WriteSettings
0x00438BF0 void *S_SoundPlaySample(int32_t sample_id, uint16_t volume, uint16_t pitch, int16_t pan);
0x00438C40 void *S_SoundPlaySampleLooped(int32_t sample_id, uint16_t volume, uint16_t pitch, int16_t pan);
0x00438CA0 int32_t S_SoundSampleIsPlaying(void *handle);
0x00438CC0 void S_SoundStopAllSamples();
0x00438CD0 void S_SoundStopSample(void *handle);
0x00438CF0 void S_SoundSetPanAndVolume(void *handle, int16_t pan, int16_t volume);
# 0x00438D40 S_CDPlay
# 0x00438E40 S_CDStop
# 0x00438E90 SampleLoader
# 0x00438EA0 LoadSamples
# 0x00439030 S_StartSyncedAudio
0x00439130 int32_t TestCollision(ITEM_INFO *item, ITEM_INFO *lara_item);
0x00439260 int32_t GetSpheres(ITEM_INFO *item, SPHERE *slist, int32_t world_space);
0x00439550 void GetJointAbsPosition(ITEM_INFO *item, PHD_VECTOR *vec, int32_t joint);
0x004396F0 void BaddieBiteEffect(ITEM_INFO *item, BITE_INFO *bite);
0x00439750 void T_InitPrint();
0x00439780 TEXTSTRING *T_Print(int16_t x, int16_t y, const char *string);
0x00439860 void T_ChangeText(TEXTSTRING *textstring, const char *string);
0x004398A0 void T_SetScale(TEXTSTRING *textstring, int32_t scale_h, int32_t scale_v);
0x004398C0 void T_FlashText(TEXTSTRING *textstring, int16_t b, int16_t rate);
0x004398F0 void T_AddBackground(TEXTSTRING *textstring, int16_t w, int16_t h, int16_t x, int16_t y);
0x00439950 void T_RemoveBackground(TEXTSTRING *textstring);
0x00439960 void T_AddOutline(TEXTSTRING *textstring, int16_t b);
0x00439990 void T_RemoveOutline(TEXTSTRING *textstring);
0x004399A0 void T_CentreH(TEXTSTRING *textstring, int16_t b);
0x004399C0 void T_CentreV(TEXTSTRING *textstring, int16_t b);
0x004399E0 void T_RightAlign(TEXTSTRING *textstring, int16_t b);
0x00439A00 void T_BottomAlign(TEXTSTRING *textstring, int16_t b);
0x00439A20 int32_t T_GetTextWidth(TEXTSTRING *textstring);
0x00439AD0 void T_RemovePrint(TEXTSTRING *textstring);
0x00439B00 void T_DrawText();
0x00439C60 void T_DrawThisText(TEXTSTRING *textstring);
0x0043A010 void InitialiseRollingBall(int16_t item_num);
0x0043A050 void RollingBallControl(int16_t item_num);
0x0043A2B0 void RollingBallCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x0043A520 void SpikeCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x0043A670 void TrapDoorControl(int16_t item_num);
0x0043A6D0 void TrapDoorFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0043A720 void TrapDoorCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0043A770 int32_t OnTrapDoor(ITEM_INFO *item, int32_t x, int32_t z);
0x0043A820 void PendulumControl(int16_t item_num);
0x0043A970 void FallingBlockControl(int16_t item_num);
0x0043AA70 void FallingBlockFloor(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0043AAB0 void FallingBlockCeiling(ITEM_INFO *item, int32_t x, int32_t y, int32_t z, int16_t *height);
0x0043AAF0 void TeethTrapControl(int16_t item_num);
0x0043ABC0 void FallingCeilingControl(int16_t item_num);
0x0043AC60 void InitialiseDamoclesSword(int16_t item_num);
0x0043ACA0 void DamoclesSwordControl(int16_t item_num);
0x0043ADD0 void DamoclesSwordCollision(int16_t item_num, ITEM_INFO *lara_item, COLL_INFO *coll);
0x0043AEC0 void DartEmitterControl(int16_t item_num);
0x0043B060 void DartsControl(int16_t item_num);
0x0043B1A0 void DartEffectControl(int16_t item_num);
0x0043B1F0 void FlameEmitterControl(int16_t item_num);
0x0043B2A0 void FlameControl(int16_t item_num);
0x0043B430 void LavaBurn(ITEM_INFO *item);
0x0043B520 void LavaEmitterControl(int16_t item_num);
0x0043B5F0 void LavaControl(int16_t item_num);
0x0043B710 void LavaWedgeControl(int16_t item_num);
0x0043B850 void CentaurControl(int16_t item_num);
0x0043BB30 void InitialiseWarrior2(int16_t item_num);
0x0043BB60 void FlyerControl(int16_t item_num);
0x0043C1C0 void ControlMissile(int16_t fx_num);
0x0043C430 int16_t ShardGun(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num);
0x0043C540 int16_t RocketGun(int32_t x, int32_t y, int32_t z, int16_t speed, int16_t y_rot, int16_t room_num);
0x0043C650 void InitialiseMummy(int16_t item_num);
0x0043C690 void MummyControl(int16_t item_num);
0x0043C730 int32_t ExplodingDeath(int16_t item_num, int32_t mesh_bits, int16_t damage);
0x0043CAD0 void ControlBodyPart(int16_t fx_num);
0x0043CC70 void InitialisePod(int16_t item_num);
0x0043CD70 void PodControl(int16_t item_num);
0x0043CE90 void InitialiseStatue(int16_t item_num);
0x0043CF80 void StatueControl(int16_t item_num);
0x0043D510 void TerminateGame(int exit_code);
# 0x0043D5F0 sub_43D5F0
0x0043D770 void ShowFatalError(const char *message);
# 0x0043D8C0 KeyboardHook
# 0x0043D940 sub_43D940
0x0043DA80 int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
0x0043DE00 LRESULT __stdcall WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
0x0043DF20 void InitialiseWolf(int16_t item_num);
0x0043DF50 void WolfControl(int16_t item_num);
0x0043E390 void LionControl(int16_t item_num);
# 0x0043E681 sub_43E681
# 0x0043E74D sub_43E74D
# 0x0043E8AC sub_43E8AC
0x0043EA01 void phd_PushMatrix();
0x0043EA21 void phd_PushUnitMatrix();
# 0x0043EA80 flatA
# 0x0043EAE4 transA
# 0x0043EC1D gourA
# 0x0043EDA2 gtmapA
# 0x0043F0B3 wgtmapA
# 0x00450500 ATI3DCIF_NullSub
0x00450510 C3D_EC InitATI3DCIF();
0x004507B0 C3D_EC __stdcall ATI3DCIF_GetInfo(C3D_3DCIFINFO *info);
0x004507C0 C3D_EC __stdcall ATI3DCIF_TextureReg(C3D_PTMAP ptmapToReg, C3D_PHTX phtmap);
0x004507E0 C3D_EC __stdcall ATI3DCIF_TextureUnreg(C3D_HTX htxToUnreg);
0x004507F0 C3D_EC __stdcall ATI3DCIF_TexturePaletteCreate(C3D_ECI_TMAP_TYPE epalette, void *pPalette, C3D_PHTXPAL phtpalCreated);
0x00450810 C3D_EC __stdcall ATI3DCIF_TexturePaletteDestroy(C3D_HTXPAL htxpalToDestroy);
0x00450820 C3D_HRC __stdcall ATI3DCIF_ContextCreate(void);
0x00450830 C3D_EC __stdcall ATI3DCIF_ContextDestroy(C3D_HRC hRC);
0x00450840 C3D_EC __stdcall ATI3DCIF_ContextSetState(C3D_HRC hRC, C3D_ERSID eRStateID, C3D_PRSDATA pRStateData);
0x00450860 C3D_EC __stdcall ATI3DCIF_RenderBegin(C3D_HRC hRC);
0x00450870 C3D_EC __stdcall ATI3DCIF_RenderEnd(void);
0x00450880 C3D_EC __stdcall ATI3DCIF_RenderPrimStrip(C3D_VSTRIP vStrip, C3D_UINT32 u32NumVert);
0x004508A0 C3D_EC __stdcall ATI3DCIF_RenderPrimList(C3D_VLIST vList, C3D_UINT32 u32NumVert);
0x004508C0 C3D_EC ShutdownATI3DCIF();
0x00438E90 int32_t (*SampleLoader)(int32_t sample_num);
0x00453030 int32_t Quality;
0x00453060 int32_t HWR_SelectedTexture;
0x00453064 float DDrawSurfaceMaxY;
0x00453068 float DDrawSurfaceMaxX;
0x004534D8 int32_t CinematicAnimationRate;
0x004534DC int16_t CDTrack;
0x004534E0 int32_t AnimationRate;
0x004534E4 int32_t FlipEffect;
0x00453530 int32_t DemoLevel;
0x00453538 int8_t DemoLevels[];
0x00453558 double ScreenSizer;
0x00453560 double GameSizer;
0x00453568 int32_t FadeValue;
0x0045356C int32_t FadeLimit;
0x00453570 int32_t FadeAdder;
0x00453600 void (*EffectRoutines[])(ITEM_INFO *item);
0x00453648 const char* LevelNames[22];
0x00453AC0 char* FMVPaths[];
0x00453C4C uint32_t CurrentLevel;
0x00453C50 int16_t SaveSlotFlags[16];
0x00453C80 int16_t ValidLevels[];
0x00453CB0 int8_t SecretTotals[16];
0x00453CC0 int32_t Rand1;
0x00453CC4 int32_t Rand2;
0x00453DF8 const char* LevelTitles[22];
0x00453F68 char* Puzzle1Strings[22];
0x00453FC0 char* Puzzle2Strings[22];
0x00454018 char* Puzzle3Strings[22];
0x00454070 char* Puzzle4Strings[22];
0x004540C8 char* Pickup1Strings[22];
0x00454120 char* Pickup2Strings[22];
0x00454178 char* Key1Strings[22];
0x004541D0 char* Key2Strings[22];
0x00454228 char* Key3Strings[22];
0x00454280 char* Key4Strings[22];
0x004546B4 int32_t OverlayFlag;
0x004546D0 int16_t GameVidWidth;
0x004546D2 int16_t GameVidHeight;
0x004546DA uint8_t* ScrPtr;
0x004546E0 int16_t DumpX;
0x004546E2 int16_t DumpY;
0x004546E4 int16_t DumpWidth;
0x004546E6 int16_t DumpHeight;
0x00454A08 int16_t Layout[2][13];
0x00454A40 char* ScanCodeNames[];
0x004550A0 int32_t InvNFrames;
0x004550A8 uint32_t* ReqBgndMoreUp;
0x004550C8 uint32_t* ReqBgndMoreDown;
0x004550E8 uint32_t* ReqBgndGour1;
0x00455108 uint32_t* ReqBgndGour2;
0x00455120 uint32_t* ReqMainGour1;
0x00455140 uint32_t* ReqMainGour2;
0x00455178 uint32_t* ReqUnselGour2;
0x00455190 uint32_t* ReqUnselGour1;
0x00455218 INVENTORY_SPRITE InvSprGammaLevel[10];
0x004552F8 INVENTORY_SPRITE* InvSprGammaList[];
0x00455760 INVENTORY_ITEM InvItemCompass;
0x004557A0 INVENTORY_ITEM InvItemPistols;
0x004557E0 INVENTORY_ITEM InvItemShotgun;
0x00455820 INVENTORY_ITEM InvItemMagnum;
0x00455860 INVENTORY_ITEM InvItemUzi;
0x004558A0 INVENTORY_ITEM InvItemPistolAmmo;
0x004558E0 INVENTORY_ITEM InvItemShotgunAmmo;
0x00455920 INVENTORY_ITEM InvItemMagnumAmmo;
0x00455960 INVENTORY_ITEM InvItemUziAmmo;
0x004559A0 INVENTORY_ITEM InvItemGrenade;
0x004559E0 INVENTORY_ITEM InvItemMedi;
0x00455A20 INVENTORY_ITEM InvItemBigMedi;
0x00455A60 INVENTORY_ITEM InvItemLeadBar;
0x00455AA0 INVENTORY_ITEM InvItemPickup1;
0x00455AE0 INVENTORY_ITEM InvItemPickup2;
0x00455B20 INVENTORY_ITEM InvItemScion;
0x00455B60 INVENTORY_ITEM InvItemPuzzle1;
0x00455BA0 INVENTORY_ITEM InvItemPuzzle2;
0x00455BE0 INVENTORY_ITEM InvItemPuzzle3;
0x00455C20 INVENTORY_ITEM InvItemPuzzle4;
0x00455C60 INVENTORY_ITEM InvItemKey1;
0x00455CA0 INVENTORY_ITEM InvItemKey2;
0x00455CE0 INVENTORY_ITEM InvItemKey3;
0x00455D20 INVENTORY_ITEM InvItemKey4;
0x00455D60 INVENTORY_ITEM InvItemGame;
0x00455DA0 INVENTORY_ITEM InvItemDetails;
0x00455DE0 INVENTORY_ITEM InvItemSound;
0x00455E20 INVENTORY_ITEM InvItemControls;
0x00455E60 INVENTORY_ITEM InvItemGamma;
0x00455EA0 INVENTORY_ITEM InvItemLarasHome;
0x00455EE0 int16_t InvMainObjects;
0x00455EE8 int16_t InvMainQtys[];
0x00455F18 INVENTORY_ITEM* InvMainList[23];
0x00455F78 int16_t InvKeysQtys[];
0x00455FA8 INVENTORY_ITEM* InvKeysList[23];
0x00456004 int16_t InvOptionObjects;
0x00456008 INVENTORY_ITEM* InvOptionList[5];
0x00456020 REQUEST_INFO LoadGameRequester;
0x00456328 int16_t InventoryChosen;
0x0045632C int16_t InventoryMode;
0x00456330 int32_t OptionSoundFXVolume;
0x00456334 int32_t OptionMusicVolume;
0x004563A8 WEAPON_INFO Weapons[5];
0x00456688 int32_t SoundIsActive;
0x0045668C int32_t MnSoundMasterVolume;
0x00456690 int32_t MnSoundMasterVolumeDefault;
0x00456694 int32_t MnSoundFadeRate;
0x004567B8 SHADOW_INFO ShadowInfo;
0x00456A18 int16_t LevelMusic[22];
0x00456AD0 char StringToShow[128];
0x00456D90 int32_t DDrawSurfaceWidth;
0x00456D94 int32_t DDrawSurfaceHeight;
0x00459CF0 HMODULE HATI3DCIFModule;
0x00459F08 int32_t WibbleOffset;
0x00459F0C int32_t IsWibbleEffect;
0x00459F10 int32_t IsWaterEffect;
0x00459F14 int32_t IsShadeEffect;
0x00459F20 float DDrawSurfaceMinY;
0x00459F24 float DDrawSurfaceMinX;
0x00459F28 int32_t HWR_IsTextureMode;
0x00459F34 int32_t HWR_IsRendering;
0x00459F38 BOOL HWR_IsPaletteActive;
0x00459F40 int32_t CinematicFrameCount;
0x00459F44 int32_t ChunkyFlag;
0x00459F48 int32_t HeightType;
0x00459F4C int32_t NoInputCount;
0x00459F50 int32_t ResetFlag;
0x00459F54 int32_t FlipTimer;
0x00459F58 int32_t FrameCount;
0x00459F60 int32_t GameHiRes;
0x00459F64 int32_t HiRes;
0x00459F68 uint8_t* BackScreen;
0x00459F6C int32_t BackScreenSize;
0x00459F70 int32_t ModeLock;
0x00459F90 char newpath[128];
0x0045A010 char CDDrive;
0x0045A014 int32_t LevelComplete;
0x0045A018 int32_t SaveCounter;
0x0045A028 int32_t OldGameTimer;
0x0045A02C int32_t OldHitPoints;
0x0045A030 TEXTSTRING* AmmoText;
0x0045A034 char* GameMemoryPointer;
0x0045A040 int16_t InvMainCurrent;
0x0045A044 int16_t InvKeysObjects;
0x0045A048 int16_t InvKeysCurrent;
0x0045A04C int16_t InvOptionCurrent;
0x0045A050 TEXTSTRING* InvItemText[2];
0x0045A058 TEXTSTRING* InvRingText;
0x0045A05C TEXTSTRING* InvUpArrow1;
0x0045A060 TEXTSTRING* InvUpArrow2;
0x0045A064 TEXTSTRING* InvDownArrow1;
0x0045A068 TEXTSTRING* InvDownArrow2;
0x0045A06C int32_t InputDB;
0x0045A078 int16_t InventoryDisplaying;
0x0045A080 int32_t InventoryExtraData[8];
0x0045A0A0 int16_t OptionGammaLevel;
0x0045A0A4 int16_t CompassStatus;
0x0045A0A8 int16_t CompassSpeed;
0x0045A0AC int16_t CompassNeedle;
0x0045A0B0 int32_t IDelay;
0x0045A0B4 int32_t IDCount;
0x0045A0B8 int16_t Item_Data;
0x0045A0E0 int32_t LevelItemCount;
0x0045A0E4 int32_t HealthBarTimer;
0x0045A1F0 uint32_t dword_45A1F0;
0x0045A1F8 int32_t SlotsUsed;
0x0045A200 int16_t MnAmbientLookup[8];
0x0045A210 int32_t NumSampleInfos;
0x0045A214 int32_t SoundsLoaded;
0x0045A218 int32_t MnSoundsPlaying;
0x0045A21C int32_t MnSoundMasterFadeOn;
0x0045A220 int32_t MnSoundFadeCounter;
0x0045A224 int32_t MnAmbientLookupIdx;
0x0045A234 int32_t KeyChange;
0x0045A23C int32_t IConfig;
0x0045A240 uint32_t RenderSettings;
0x0045A248 TEXTSTRING* CtrlTextA[13];
0x0045A280 TEXTSTRING* CtrlTextB[13];
0x0045A2F8 TEXTSTRING* ControlText[2];
0x0045A300 int32_t PhdWet;
0x0045A314 int32_t NumberCameras;
0x0045A318 int32_t Ticks;
0x0045A31C int32_t SoundInit1;
0x0045A320 int32_t SoundInit2;
0x0045A324 int32_t TitleLoaded;
0x0045A960 C3D_3DCIFINFO ATIInfo;
0x0045A994 C3D_HRC ATIRenderContext;
0x0045A998 LPDIRECTDRAW DDraw;
0x0045A9E0 TEXTSTRING TextInfoTable[32];
0x0045B120 int16_t TextStringCount;
0x0045B140 char TextStrings[32][64];
0x0045B940 int32_t dword_45B940;
0x0045B94C int32_t CDLoop;
0x0045B954 SAMPLE_DATA** SampleData;
0x0045B958 int32_t JoyXPos;
0x0045B95C int32_t JoyYPos;
0x0045B964 int32_t CDNumTracks;
0x0045B96C int32_t NumSampleData;
0x0045B970 int32_t JoyThrottle;
0x0045B97C int16_t CDTrackLooped;
0x0045B984 uint32_t AuxDeviceID;
0x0045B98C int32_t LastReadFileSize;
0x0045B990 int32_t JoyFire;
0x0045B994 uint32_t MCIDeviceID;
0x0045B998 KEYSTUFF* KeyData;
0x0045B9A0 int32_t JoyHat;
0x0045B9C0 SAVEGAME_INFO SaveGame[1];
0x0045E328 int16_t PierreItem;
0x0045E32C char* GameAllocMemPointer;
0x0045E330 uint32_t GameAllocMemUsed;
0x0045E334 uint32_t GameAllocMemFree;
0x0045E33D RGB888 WaterPalette[256];
0x0045E640 int16_t* AnimTextureRanges;
0x0045E660 RGB888 GamePalette[256];
0x0045E960 uint32_t OldRenderSettings;
0x0045E964 int32_t NumSamples;
0x0045E980 MN_SFX_PLAY_INFO SFXPlaying[24];
0x0045EB60 int16_t SampleLUT[256];
0x0045ED60 SAMPLE_INFO* SampleInfos;
0x0045ED64 CREATURE_INFO* BaddieSlots;
0x0045ED80 LARA_INFO Lara;
0x0045EE6C ITEM_INFO* LaraItem;
0x0045EE70 FX_INFO* Effects;
0x0045EE74 int16_t NextFxFree;
0x0045EE76 int16_t NextItemFree;
0x0045EE78 int16_t NextItemActive;
0x0045EE7A int16_t NextFxActive;
0x0045EE80 int16_t InvColours[17];
0x0045EEC0 int32_t Conflict[13];
0x0045EEF4 int32_t Input;
0x0045EEF8 uint32_t GameMemorySize;
0x0045EF00 DISPLAYPU Pickups[3];
0x0045F1B4 int32_t SavedGamesCount;
0x0045F1B8 int16_t* MeshBase;
0x0045F1BC int16_t* FloorData;
0x0045F1C0 uint32_t DEMO;
0x0045F1C4 int32_t NumberSoundEffects;
0x0045F1C8 OBJECT_VECTOR* SoundEffectsTable;
0x0045F1CC LPDIRECTSOUND DSound;
0x0045F1E0 int32_t DecibelLUT[512];
0x0045F9E0 OBJECT_INFO Objects[191];
0x00461F30 int16_t* AnimFrames;
0x00461F34 int16_t** Meshes;
0x00461F38 int32_t RoomsToDrawNum;
0x00461F40 PHD_MATRIX IMMatrixStack[32];
0x00462540 DOOR_VBUF DoorVBuf[4];
0x00462570 int32_t IMFrac;
0x00462574 ANIM_STRUCT* Anims;
0x00462578 ANIM_RANGE_STRUCT* AnimRanges;
0x0046257C int16_t* AnimCommands;
0x00462580 int16_t RoomsToDraw[100];
0x00462648 int32_t* AnimBones;
0x00462660 STATIC_INFO StaticObjects[];
0x00462BD8 ANIM_CHANGE_STRUCT* AnimChanges;
0x00462BDC uint16_t RoomCount;
0x00462BE0 int32_t IMRate;
0x00462BE4 PHD_MATRIX* IMMatrixPtr;
0x00462BE8 ROOM_INFO* RoomInfo;
0x00462BEC int32_t CameraUnderwater;
0x00462BF0 int16_t InterpolatedBounds[6];
0x00462BFC int32_t* DemoPtr;
0x00462BFC uint32_t* DemoPtr;
0x00462C00 int32_t DemoCount;
0x00462C20 int16_t CDFlags[64];
0x00462CA0 int32_t FlipStatus;
0x00462CC0 int32_t FlipMapTable[10];
0x00462CE8 int16_t* TriggerIndex;
0x00462CEC ITEM_INFO* Items;
0x00462CF0 int16_t NumCineFrames;
0x00462CF4 int16_t* Cine;
0x00462D00 PHD_3DPOS CinematicPosition;
0x00462D12 int16_t CinematicLevel;
0x00462D14 int16_t CineFrame;
0x00462D20 CAMERA_INFO Camera;
0x00462D80 int16_t* GroundZone2[2];
0x00462D88 int16_t* GroundZone[2];
0x00462D90 int16_t* FlyZone[2];
0x00462D98 uint16_t* Overlap;
0x00462D9C BOX_INFO* Boxes;
0x00462DA0 int32_t NumberBoxes;
0x00462DC0 C3D_PALETTENTRY ATIPalette[256];
0x004634E0 LPDIRECTDRAWSURFACE TextureCacheSurfaces[16];
0x00463564 void* Surface1DrawPtr;
0x00463568 int32_t HWR_OldIsRendering;
0x00463580 C3D_HTX ATITextureMap[32];
0x00463600 HWND TombHWND;
0x00463600 uint32_t TombHWND;
0x00463608 LPDIRECTDRAWSURFACE Surface4;
0x0046360C int32_t IsTextureCacheAvailable;
0x00463610 int32_t IsHardwareRenderer;
0x00463614 C3D_COLOR ATIChromaKey;
0x00463618 int32_t HWR_LightningCount;
0x0046361C uint32_t VideoMemoryAvailable;
0x005DA6A4 LPDIRECTDRAWSURFACE Surface1;
0x005DA6C0 LPDIRECTDRAWSURFACE TextureSurfaces[32];
0x005DA744 LPDIRECTDRAWSURFACE Surface3;
0x005DA760 int32_t HWR_TextureLoaded[32];
0x005DA800 HWR_LIGHTNING HWR_LightningTable[100];
0x005DB480 void* Surface2DrawPtr;
0x005DB484 LPDIRECTDRAWSURFACE Surface2;
0x0068B380 uint8_t GouraudTable[256][32];
0x0068D380 int32_t PhdTop;
0x0068D3A0 PHD_SPRITE PhdSpriteInfo[512];
0x0068F3A0 int32_t LsAdder;
0x0068F3A4 float FltWinBottom;
0x0068F3A8 int32_t PhdWinHeight;
0x0068F3AC int32_t PhdCenterX;
0x0068F3B0 int32_t PhdCenterY;
0x0068F3B4 int32_t LsYaw;
0x0068F3B8 float FltWinTop;
0x00695180 float FltWinLeft;
0x00695184 int32_t PhdFarZ;
0x00695188 int32_t PhdBottom;
0x0069518C int32_t PhdPersp;
0x00695190 int32_t PhdLeft;
0x006CAD00 int32_t PhdWinMaxX;
0x006CAD04 int32_t PhdNearZ;
0x006CAD08 int32_t PhdScrHeight;
0x006CAD0C uint8_t* PhdWinPtr;
0x006CAD10 int32_t PhdWinMaxY;
0x006CAD14 PHD_MATRIX* PhdMatrixPtr;
0x006CAD20 int32_t RandTable[32];
0x006CADA0 PHD_MATRIX W2VMatrix;
0x006CADD4 int32_t PhdWinWidth;
0x006CADE0 PHD_TEXTURE PhdTextureInfo[1024];
0x006D4DE0 int32_t PhdViewDist;
0x006D4DE4 int32_t LsPitch;
0x006D4E00 int32_t ShadeTable[32];
0x006D4E80 PHD_MATRIX MatrixStack[40];
0x006D5600 uint8_t DepthQTable[32][256];
0x006D7600 int32_t PhdScrWidth;
0x006D7604 int32_t LsDivider;
0x006D7620 PHD_VBUF PhdVBuf[1500];
0x006E7FC0 int8_t* TexturePagePtrs[32];
0x006E8040 float FltWinRight;
0x006E8050 PHD_VECTOR LsVectorView;
0x006E8060 int32_t WibbleTable[32];
0x006E80E0 int32_t PhdRight;