diff --git a/TR5Main/Game/door.h b/TR5Main/Game/door.h index a7cef754b..ba4bf729a 100644 --- a/TR5Main/Game/door.h +++ b/TR5Main/Game/door.h @@ -1,6 +1,20 @@ #pragma once #include "..\Global\global.h" +#define InitialiseDoor ((void (__cdecl*)(__int16)) 0x0043DB60) +#define DrawLiftDoor ((void (__cdecl*)(ITEM_INFO*)) 0x0045AAF0) +#define DoubleDoorControl ((void (__cdecl*)(__int16)) 0x00429840) +#define InitialiseTrapDoor ((void (__cdecl*)(__int16)) 0x0043D2F0) +#define TrapDoorFloorCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x004891F0) +#define TrapDoorCeilingCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00489450) +#define TrapDoorNormalCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x004896D0) +#define TrapDoorControl ((void (__cdecl*)(__int16)) 0x00488FA0) +#define InitialiseCupboard ((void (__cdecl*)(__int16)) 0x0043EDB0) +#define CupboardCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x004699A0) +#define CupboardControl ((void (__cdecl*)(__int16)) 0x00469660) +#define InitialiseSteelDoor ((void (__cdecl*)(__int16)) 0x0043F180) +#define SteelDoorControl ((void (__cdecl*)(__int16)) 0x00486BE0) +#define SteelDoorCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00487AD0) void __cdecl SequenceDoorControl(__int16 itemNumber); void __cdecl UnderwaterDoorCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); void __cdecl DoubleDoorCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); diff --git a/TR5Main/Game/draw.h b/TR5Main/Game/draw.h index c93d00839..08e034d01 100644 --- a/TR5Main/Game/draw.h +++ b/TR5Main/Game/draw.h @@ -11,7 +11,8 @@ #define GetRoomBounds ((void (__cdecl*)()) 0x0042D4F0) #define UpdateStorm ((void (__cdecl*)()) 0x0042A310) #define Sub_0042A050 ((void (__cdecl*)()) 0x0042A050) -#define IsRoomOutside ((__int32 (__cdecl*)(__int32, __int32, __int32)) 0x00418E90) +#define IsRoomOutside ((__int32 (__cdecl*)(__int32, __int32, __int32)) 0x00418E90) +#define DrawBaddieGunFlash ((void (__cdecl*)(ITEM_INFO*)) 0x00466880) __int32 __cdecl DrawPhaseGame(); __int32 __cdecl GetFrame_D2(ITEM_INFO* item, __int16* framePtr[], __int32* rate); diff --git a/TR5Main/Game/effect2.h b/TR5Main/Game/effect2.h index 743315737..7904b70d5 100644 --- a/TR5Main/Game/effect2.h +++ b/TR5Main/Game/effect2.h @@ -17,7 +17,10 @@ #define TriggerShockwave ((void (__cdecl*)(PHD_3DPOS*, __int32, __int32, __int32, __int32, __int32)) 0x00484670) #define TriggerExplosionBubbles ((void (__cdecl*)(__int32, __int32, __int32, __int16)) 0x00431070) #define AddFire ((void (__cdecl*)(__int32, __int32, __int32, byte, __int16, __int32)) 0x00481B40) - +#define InitialiseSmokeEmitter ((void (__cdecl*)(__int16)) 0x0043D9D0) +#define SmokeEmitterControl ((void (__cdecl*)(__int16)) 0x00431560) +#define DrawLensFlare ((void (__cdecl*)(ITEM_INFO*)) 0x00485290) +#define ControlWaterfallMist ((void (__cdecl*)(__int16)) 0x00432CA0) void __cdecl TriggerDynamics(__int32 x, __int32 y, __int32 z, __int16 falloff, byte r, byte g, byte b); void __cdecl TriggerGunSmoke(__int32 x, __int32 y, __int32 z, __int32 xv, __int32 yv, __int32 zv, __int32 initial, __int32 weapon, __int32 count); void __cdecl TriggerRocketFlame(__int32 x, __int32 y, __int32 z, __int32 xv, __int32 yv, __int32 zv, __int32 itemNumber); diff --git a/TR5Main/Game/guardian.cpp b/TR5Main/Game/guardian.cpp index e69de29bb..6a2827e1f 100644 --- a/TR5Main/Game/guardian.cpp +++ b/TR5Main/Game/guardian.cpp @@ -0,0 +1 @@ +#include "guardian.h" \ No newline at end of file diff --git a/TR5Main/Game/guardian.h b/TR5Main/Game/guardian.h index 50e96676b..615dcdd89 100644 --- a/TR5Main/Game/guardian.h +++ b/TR5Main/Game/guardian.h @@ -1 +1,5 @@ #pragma once +#include "..\Global\global.h" + +#define InitialiseLaserHead ((void (__cdecl*)(__int16)) 0x00436FE0) +#define ControlLaserHead ((void (__cdecl*)(__int16)) 0x00437680) \ No newline at end of file diff --git a/TR5Main/Game/larafire.cpp b/TR5Main/Game/larafire.cpp index 9dda12315..1f230a12e 100644 --- a/TR5Main/Game/larafire.cpp +++ b/TR5Main/Game/larafire.cpp @@ -13,29 +13,185 @@ WEAPON_INFO Weapons[NUM_WEAPONS] = { /* No weapons */ - { { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) },{ ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) },{ ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, 0x0000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x0000 }, + { + { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, + { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, + { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + }, /* Pistols */ - { { 54616, ANGLE(60), 54616, ANGLE(60) },{ 34596, ANGLE(60), 50976, ANGLE(80) },{ 54616, ANGLE(170), 50976, ANGLE(80) }, 0x071C, 0x05B0, 0x028A, 0x2000, 100, 0x09, 0x03, 0x00, 0x0008 }, + { + { -ANGLE(60), +ANGLE(60), -ANGLE(60), +ANGLE(60) }, + { -ANGLE(170), +ANGLE(60), -ANGLE(80), +ANGLE(80) }, + { -ANGLE(60), +ANGLE(170), -ANGLE(80), +ANGLE(80) }, + ANGLE(10), + ANGLE(8), + 650, + 8 * WALL_SIZE, + 1, + 9, + 3, + 0, + 8 + }, /* Revolver */ - { { 54616, ANGLE(60), 54616, ANGLE(60) },{ 63716, ANGLE(10), 50976, ANGLE(80) },{ ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, 0x071C, 0x02D8, 0x028A, 0x2000, 0x15, 0x10, 0x03, 0x00, 0x0079 }, + { + { -ANGLE(60), ANGLE(60), -ANGLE(60), ANGLE(60) }, + { -ANGLE(10), ANGLE(10), -ANGLE(80), ANGLE(80) }, + { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, + ANGLE(10), + ANGLE(4), + 650, + 8 * WALL_SIZE, + 21, + 16, + 3, + 0, + 121 + }, /* Uzis */ - { { 54616, ANGLE(60), 54616, ANGLE(60) },{ 34596, ANGLE(60), 50976, ANGLE(80) },{ 54616, ANGLE(170), 50976, ANGLE(80) }, 0x071C, 0x05B0, 0x028A, 0x2000, 0x01, 0x03, 0x03, 0x00, 0x002B }, + { + { -ANGLE(60), +ANGLE(60), -ANGLE(60), +ANGLE(60) }, + { -ANGLE(170), +ANGLE(60), -ANGLE(80), +ANGLE(80) }, + { -ANGLE(60), +ANGLE(170), -ANGLE(80), +ANGLE(80) }, + ANGLE(10), + ANGLE(8), + 650, + 8 * WALL_SIZE, + 1, + 3, + 3, + 0, + 43 + }, /* Shotgun */ - { { 54616, ANGLE(60), 55526, ANGLE(55) },{ 50976, ANGLE(80), 53706, ANGLE(65) },{ 50976, ANGLE(80), 53706, ANGLE(65) }, 0x071C, 0x0000, 0x01F4, 0x2000, 0x03, 0x09, 0x03, 0x0A, 0x002D }, + { + { -ANGLE(60), +ANGLE(60), -ANGLE(55), +ANGLE(55) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(65), +ANGLE(65) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(65), +ANGLE(65) }, + ANGLE(10), + 0, + 500, + 8 * WALL_SIZE, + 3, + 9, + 3, + 10, + 45 + }, /* HK */ - { { 54616, ANGLE(60), 55526, ANGLE(55) },{ 50976, ANGLE(80), 53706, ANGLE(65) },{ 50976, ANGLE(80), 53706, ANGLE(65) }, 0x071C, 0x02D8, 0x01F4, 0x3000, 0x04, 0x00, 0x03, 0x10, 0x0000 }, + { + { -ANGLE(60), +ANGLE(60), -ANGLE(55), +ANGLE(55) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(65), +ANGLE(65) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(65), +ANGLE(65) }, + ANGLE(10), + ANGLE(4), + 500, + 12 * WALL_SIZE, + 4, + 0, + 3, + 10, + 0 + }, /* Crossbow */ - { { 54616, ANGLE(60), 55526, ANGLE(55) },{ 50976, ANGLE(80), 53706, ANGLE(65) },{ 50976, ANGLE(80), 53706, ANGLE(65) }, 0x071C, 0x05B0, 0x01F4, 0x2000, 0x05, 0x00, 0x02, 0x0A, 0x0000 }, + { + { -ANGLE(60), +ANGLE(60), -ANGLE(55), +ANGLE(55) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(65), +ANGLE(65) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(65), +ANGLE(65) }, + ANGLE(10), + ANGLE(8), + 500, + 8 * WALL_SIZE, + 5, + 0, + 2, + 10, + 0 + }, /* Flare */ - { { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) },{ ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) },{ ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, 0x0000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x0000 }, + { + { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, + { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, + { ANGLE(0), ANGLE(0), ANGLE(0), ANGLE(0) }, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + }, /* Flare 2 */ - { { 60076, ANGLE(30), 55526, ANGLE(55) },{ 60076, ANGLE(30), 55526, ANGLE(55) },{ 60076, ANGLE(30), 55526, ANGLE(55) }, 0x071C, 0x05B0, 0x0190, 0x2000, 0x03, 0x00, 0x02, 0x00, 0x002B }, + { + { -ANGLE(30), +ANGLE(30), -ANGLE(55), ANGLE(55) }, + { -ANGLE(30), +ANGLE(30), -ANGLE(55), ANGLE(55) }, + { -ANGLE(30), +ANGLE(30), -ANGLE(55), ANGLE(55) }, + ANGLE(10), + ANGLE(8), + 400, + 8 * WALL_SIZE, + 3, + 0, + 2, + 0, + 43 + }, /* Grenade launcher */ - { { -ANGLE(60), ANGLE(60), -ANGLE(55), ANGLE(55) },{ -ANGLE(80), ANGLE(80), -ANGLE(65), ANGLE(65) },{ -ANGLE(80), ANGLE(80), -ANGLE(65), ANGLE(65) }, ANGLE(10), ANGLE(8), 500, 8 * WALL_SIZE, 20, 0, 2, 10, 0 }, + { + { -ANGLE(60), +ANGLE(60), -ANGLE(55), +ANGLE(55) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(65), +ANGLE(65) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(65), +ANGLE(65) }, + ANGLE(10), + ANGLE(8), + 500, + 8 * WALL_SIZE, + 20, + 0, + 2, + 10, + 0 + }, /* Harpoon gun */ - { { -ANGLE(60), ANGLE(60), -ANGLE(65), ANGLE(65) },{ -ANGLE(20), ANGLE(20), -ANGLE(75), ANGLE(75) },{ -ANGLE(80), ANGLE(80), -ANGLE(75), ANGLE(75) }, ANGLE(10), ANGLE(8), 500, 8 * WALL_SIZE, 6, 0, 2, 10, 0 }, + { + { -ANGLE(60), +ANGLE(60), -ANGLE(65), +ANGLE(65) }, + { -ANGLE(20), +ANGLE(20), -ANGLE(75), +ANGLE(75) }, + { -ANGLE(80), +ANGLE(80), -ANGLE(75), +ANGLE(75) }, + ANGLE(10), + ANGLE(8), + 500, + 8 * WALL_SIZE, + 6, + 0, + 2, + 10, + 0 + }, /* Rocket launcher */ - { { -ANGLE(60), ANGLE(60), -ANGLE(55), ANGLE(55) },{ -ANGLE(80), ANGLE(80), -ANGLE(65), ANGLE(65) },{ -ANGLE(80), ANGLE(80), -ANGLE(65), ANGLE(65) }, ANGLE(10), ANGLE(8), 500, 8 * WALL_SIZE, 30, 0, 2, 12, 77 } + { + { -ANGLE(60), ANGLE(60), -ANGLE(55), ANGLE(55) }, + { -ANGLE(80), ANGLE(80), -ANGLE(65), ANGLE(65) }, + { -ANGLE(80), ANGLE(80), -ANGLE(65), ANGLE(65) }, + ANGLE(10), + ANGLE(8), + 500, + 8 * WALL_SIZE, + 30, + 0, + 2, + 12, + 77 + } }; extern GameFlow* g_GameFlow; @@ -68,6 +224,46 @@ __int32 __cdecl WeaponObject(__int32 weaponType) } } +void __cdecl AimWeapon(WEAPON_INFO* winfo, LARA_ARM* arm) +{ + __int16 rotY, rotX, speed = 0, x = 0, y = 0; + + speed = winfo->aimSpeed; + + if (arm->lock) + { + y = Lara.targetAngles[0]; + x = Lara.targetAngles[1]; + } + else + { + y = 0; + x = 0; + } + + /* move y axis */ + rotY = arm->yRot; + if ((rotY >= y - speed) && (rotY <= y + speed)) + rotY = y; + else if (rotY < speed) + rotY += speed; + else + rotY -= speed; + + /* move x axis */ + rotX = arm->xRot; + if ((rotX >= x - speed) && (rotX <= x + speed)) + rotX = x; + else if (rotX < x) + rotX += speed; + else + rotX -= speed; + + arm->xRot = rotX; + arm->yRot = rotY; + arm->zRot = 0; +} + void __cdecl SmashItem(__int16 itemNum) { /*ITEM_INFO* item = &Items[itemNum]; @@ -428,6 +624,7 @@ __int32 __cdecl WeaponObjectMesh(__int32 weaponType) void Inject_LaraFire() { + INJECT(0x00453490, AimWeapon); INJECT(0x00453AE0, WeaponObject); INJECT(0x00452430, LaraGun); INJECT(0x004546C0, GetAmmo); diff --git a/TR5Main/Game/larafire.h b/TR5Main/Game/larafire.h index 240c9a6b5..1c99e375f 100644 --- a/TR5Main/Game/larafire.h +++ b/TR5Main/Game/larafire.h @@ -10,7 +10,8 @@ //#define GetAmmo ((__int32 (__cdecl*)(__int32)) 0x004546C0) #define LaraGetNewTarget ((void (__cdecl*)(WEAPON_INFO*)) 0x00452ED0) #define LaraTargetInfo ((void (__cdecl*)(WEAPON_INFO*)) 0x00452CC0) -#define AimWeapon ((void (__cdecl*)(WEAPON_INFO*, LARA_ARM*)) 0x00453490) +void __cdecl AimWeapon(WEAPON_INFO* winfo, LARA_ARM* arm); +#define TorchControl ((void (__cdecl*)(__int16)) 0x00434390) extern WEAPON_INFO Weapons[NUM_WEAPONS]; diff --git a/TR5Main/Game/laraflar.cpp b/TR5Main/Game/laraflar.cpp index e69de29bb..13bb5b2bc 100644 --- a/TR5Main/Game/laraflar.cpp +++ b/TR5Main/Game/laraflar.cpp @@ -0,0 +1 @@ +#include "laraflar.h" \ No newline at end of file diff --git a/TR5Main/Game/laraflar.h b/TR5Main/Game/laraflar.h index 9c228858c..2572c278b 100644 --- a/TR5Main/Game/laraflar.h +++ b/TR5Main/Game/laraflar.h @@ -1,4 +1,5 @@ #pragma once +#include "..\Global\global.h" #define UndrawFlaresMeshes ((void (__cdecl*)()) 0x004553E0) #define CreateFlare ((void (__cdecl*)(__int16, __int32)) 0x00454BC0) @@ -6,4 +7,6 @@ #define UndrawFlare ((void (__cdecl*)()) 0x004550C0) #define DoFlareInHand ((void (__cdecl*)(__int32)) 0x004549B0) #define SetFlareArm ((void (__cdecl*)(__int32)) 0x00454EE0) -#define DrawFlaresMeshes ((void (__cdecl*)()) 0x004553B0) \ No newline at end of file +#define DrawFlaresMeshes ((void (__cdecl*)()) 0x004553B0) +#define FlareControl ((void (__cdecl*)(__int16)) 0x00455460) +#define DrawFlareItem ((void (__cdecl*)(ITEM_INFO*)) 0x00454A90) \ No newline at end of file diff --git a/TR5Main/Game/laramisc.h b/TR5Main/Game/laramisc.h index 27e2b0715..8064fcfcd 100644 --- a/TR5Main/Game/laramisc.h +++ b/TR5Main/Game/laramisc.h @@ -1,3 +1,4 @@ #pragma once #define LaraBurn ((void (__cdecl*)()) 0x0048AD60) +#define InitialiseLaraLoad ((void (__cdecl*)(__int16)) 0x004568C0) diff --git a/TR5Main/Game/missile.h b/TR5Main/Game/missile.h index 8784aeef2..228e7757b 100644 --- a/TR5Main/Game/missile.h +++ b/TR5Main/Game/missile.h @@ -4,3 +4,5 @@ void ShootAtLara(FX_INFO *fx); void ControlMissile(__int16 fxNumber); +#define TorpedoControl ((void (__cdecl*)(__int16)) 0x0045C9F0) +#define ControlEnemyMissile ((void (__cdecl*)(__int16)) 0x00431E70) \ No newline at end of file diff --git a/TR5Main/Game/objects.h b/TR5Main/Game/objects.h index f07f192a7..244773a56 100644 --- a/TR5Main/Game/objects.h +++ b/TR5Main/Game/objects.h @@ -1,9 +1,10 @@ #pragma once #include "..\Global\global.h" +#define InitialiseAnimating ((void (__cdecl*)(__int16)) 0x00440100) #define AnimatingControl ((void (__cdecl*)(__int16)) 0x00465590) -//#define SmashObject ((__int32(__cdecl*)(__int16)) 0x00465200) +#define InitialiseSmashObject ((void (__cdecl*)(__int16)) 0x0043D7F0) void __cdecl SmashObject(__int16 itemNumber); void __cdecl SmashObjectControl(__int16 itemNumber); void __cdecl BridgeFlatFloor(ITEM_INFO* item, __int32 x, __int32 y, __int32 z, __int32* height); @@ -18,10 +19,17 @@ void __cdecl PoleCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); void __cdecl ControlTriggerTriggerer(__int16 itemNumber); void __cdecl AnimateWaterfalls(); void __cdecl ControlWaterfall(__int16 itemNumber); +#define InitialiseTightRope ((void (__cdecl*)(__int16)) 0x0043ED30) void __cdecl TightRopeCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); void __cdecl ParallelBarsCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); +#define InitialiseXRayMachine ((void (__cdecl*)(__int16)) 0x0043FA20) void __cdecl ControlXRayMachine(__int16 itemNumber); void __cdecl CutsceneRopeControl(__int16 itemNumber); void __cdecl HybridCollision(__int16 itemNum, ITEM_INFO* laraitem, COLL_INFO* coll); +#define InitialiseRaisingBlock ((void (__cdecl*)(__int16)) 0x0043D730) +#define RaisingBlockControl ((void (__cdecl*)(__int16)) 0x0048C3D0) +#define InitialiseRaisingCog ((void (__cdecl*)(__int16)) 0x00440320) +#define RaisingCogControl ((void (__cdecl*)(__int16)) 0x00406040) +#define HighObject2Control ((void (__cdecl*)(__int16)) 0x004070D0) void Inject_Objects(); \ No newline at end of file diff --git a/TR5Main/Game/rat.h b/TR5Main/Game/rat.h index 50e96676b..a7bd3f652 100644 --- a/TR5Main/Game/rat.h +++ b/TR5Main/Game/rat.h @@ -1 +1,6 @@ #pragma once + +#include "..\Global\global.h" + +#define InitialiseLittleRats ((void (__cdecl*)(__int16)) 0x0046B220) +#define ControlLittleRats ((void (__cdecl*)(__int16)) 0x0046AB30) \ No newline at end of file diff --git a/TR5Main/Game/rope.h b/TR5Main/Game/rope.h index 251f1bf9a..26c26450d 100644 --- a/TR5Main/Game/rope.h +++ b/TR5Main/Game/rope.h @@ -2,4 +2,7 @@ #include "..\Global\global.h" +#define InitialiseRope ((void (__cdecl*)(__int16)) 0x0046F060) +#define RopeControl ((void (__cdecl*)(__int16)) 0x0046DD40) +#define RopeCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0046DAE0) #define CalculateRopePoints ((void (__cdecl*)(ROPE_STRUCT*)) 0x0046EC70) \ No newline at end of file diff --git a/TR5Main/Game/switch.h b/TR5Main/Game/switch.h index e1bdc6f28..784ac159e 100644 --- a/TR5Main/Game/switch.h +++ b/TR5Main/Game/switch.h @@ -1,6 +1,12 @@ #pragma once #include "..\Global\global.h" +#define InitialiseSwitch ((void (__cdecl*)(__int16)) 0x00440070) +#define SequenceControl ((void (__cdecl*)(__int16)) 0x0047F520) +#define SequenceCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0047F610) +#define LeverSwitchCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0047EE00) +#define InitialisePulleySwitch ((void (__cdecl*)(__int16)) 0x0043E1F0) +#define InitialiseCrowDoveSwitch ((void (__cdecl*)(__int16)) 0x0043ECF0) void __cdecl CrowDoveSwitchCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); void __cdecl CrowDoveSwitchControl(__int16 itemNumber); void __cdecl CogSwitchCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); @@ -14,6 +20,8 @@ void __cdecl TurnSwitchCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll) void __cdecl TurnSwitchControl(__int16 itemNum); void __cdecl PulleyCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); void __cdecl UnderwaterSwitchCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); +#define KeyHoleCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00468930) +#define PuzzleDoneCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00468C00) void __cdecl SwitchCollision2(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); void __cdecl SwitchCollision(__int16 itemNum, ITEM_INFO* l, COLL_INFO* coll); void __cdecl SwitchControl(__int16 itemNumber); diff --git a/TR5Main/Game/traps.h b/TR5Main/Game/traps.h index 50e96676b..1a2b8a2bc 100644 --- a/TR5Main/Game/traps.h +++ b/TR5Main/Game/traps.h @@ -1 +1,58 @@ #pragma once + +#include "..\Global\global.h" + +#define ElectricityWiresControl ((void (__cdecl*)(__int16)) 0x00442610) +#define InitialiseRomeHammer ((void (__cdecl*)(__int16)) 0x0043ECB0) +#define InitialiseDeathSlide ((void (__cdecl*)(__int16)) 0x0041CC70) +#define DeathSlideCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0041CCE0) +#define DeathSlideControl ((void (__cdecl*)(__int16)) 0x0041CE00) +#define RollingBallCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0048B6D0) +#define RollingBallControl ((void (__cdecl*)(__int16)) 0x0048AE60) +#define InitialiseTwoBlocksPlatform ((void (__cdecl*)(__int16)) 0x0043D5D0) +#define TwoBlocksPlatformControl ((void (__cdecl*)(__int16)) 0x0048BBB0) +#define TwoBlocksPlatformFloor ((void (__cdecl*)(ITEM_INFO*,__int32,__int32,__int32,int*)) 0x0048B9E0) +#define TwoBlocksPlatformCeiling ((void (__cdecl*)(ITEM_INFO*,__int32,__int32,__int32,int*)) 0x0048BA50) +#define KillAllTriggersControl ((void (__cdecl*)(__int16)) 0x00431030) +#define FallingCeilingCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x004127C0) +#define FallingCeilingControl ((void (__cdecl*)(__int16)) 0x004899D0) +#define InitialiseFallingBlock ((void (__cdecl*)(__int16)) 0x0043D330) +#define FallingBlockCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00489750) +#define FallingBlockControl ((void (__cdecl*)(__int16)) 0x00489820) +#define FallingBlockFloor ((void (__cdecl*)(ITEM_INFO*,__int32,__int32,__int32,int*)) 0x00489910) +#define FallingBlockCeiling ((void (__cdecl*)(ITEM_INFO*,__int32,__int32,__int32,int*)) 0x00489980) +#define InitialisePushableBlock ((void (__cdecl*)(__int16)) 0x0045E720) +#define PushableBlockControl ((void (__cdecl*)(__int16)) 0x0045EA30) +#define PushableBlockCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0045F570) +#define DartEmitterControl ((void (__cdecl*)(__int16)) 0x00489B30) +#define DrawDart ((void (__cdecl*)(ITEM_INFO*)) 0x004CBB10) +#define DartControl ((void (__cdecl*)(__int16)) 0x00489D60) +#define InitialiseFlameEmitter ((void (__cdecl*)(__int16)) 0x0043D370) +#define FlameEmitterCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00433B40) +#define FlameEmitterControl ((void (__cdecl*)(__int16)) 0x00489F70) +#define InitialiseFlameEmitter2 ((void (__cdecl*)(__int16)) 0x0043D4E0) +#define FlameEmitter2Control ((void (__cdecl*)(__int16)) 0x0048A3B0) +#define FlameEmitter3Control ((void (__cdecl*)(__int16)) 0x0048A570) +#define FlameControl ((void (__cdecl*)(__int16)) 0x0048AB80) +#define InitialiseRopeTrap ((void (__cdecl*)()) 0x0046EE40) +#define GenSlot1Control ((void (__cdecl*)(__int16)) 0x00406580) +#define InitialiseGenSlot2 ((void (__cdecl*)(__int16)) 0x0043FD70) +#define GenSlot2Control ((void (__cdecl*)(__int16)) 0x00488710) +#define DrawGenSlot2 ((void (__cdecl*)(ITEM_INFO*)) 0x004CFF80) +#define InitialiseGenSlot3 ((void (__cdecl*)(__int16)) 0x004402E0) +#define InitialiseGenSlot4 ((void (__cdecl*)(__int16)) 0x00440440) +#define GenSlot4Control ((void (__cdecl*)(__int16)) 0x00486450) +#define InitialiseHighObject1 ((void (__cdecl*)(__int16)) 0x0043FC30) +#define HighObject1Control ((void (__cdecl*)(__int16)) 0x004067E0) +#define InitialisePortal ((void (__cdecl*)(__int16)) 0x0043FAA0) +#define PortalControl ((void (__cdecl*)(__int16)) 0x00401AEB) +#define DrawPortal ((void (__cdecl*)(ITEM_INFO*)) 0x004CFF80) +#define InitialiseWreckingBall ((void (__cdecl*)(__int16)) 0x0043EF20) +#define WreckingBallCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00441D50) +#define WreckingBallControl ((void (__cdecl*)(__int16)) 0x00441410) +#define DrawWreckingBall ((void (__cdecl*)(ITEM_INFO*)) 0x00441F50) +#define InitialiseVentilator ((void (__cdecl*)(__int16)) 0x0043F3D0) +#define VentilatorControl ((void (__cdecl*)(__int16)) 0x00405610) +#define InitialiseTeethSpike ((void (__cdecl*)(__int16)) 0x0043FBC0) +#define TeethSpikeControl ((void (__cdecl*)(__int16)) 0x0043FBC0) +#define DrawScaledSpike ((void (__cdecl*)(ITEM_INFO*)) 0x0043FBC0) \ No newline at end of file diff --git a/TR5Main/Objects/oldobjects.h b/TR5Main/Objects/oldobjects.h new file mode 100644 index 000000000..921205c2e --- /dev/null +++ b/TR5Main/Objects/oldobjects.h @@ -0,0 +1,46 @@ +#pragma once +#include "..\Global\global.h" + +#define InitialiseGuard ((void (__cdecl*)(__int16)) 0x0043F420) +#define ControlGuard ((void (__cdecl*)(__int16)) 0x0046F5E0) +#define InitialiseSubmarine ((void (__cdecl*)(__int16)) 0x0045D360) +#define ControlSubmarine ((void (__cdecl*)(__int16)) 0x0045D3F0) +#define InitialiseDoberman ((void (__cdecl*)(__int16)) 0x00428940) +#define ControlDoberman ((void (__cdecl*)(__int16)) 0x00428A10) +#define InitialiseDog ((void (__cdecl*)(__int16)) 0x0043B670) +#define ControlDog ((void (__cdecl*)(__int16)) 0x0043B730) +#define InitialiseReaper ((void (__cdecl*)(__int16)) 0x0045DA70) +#define ControlReaper ((void (__cdecl*)(__int16)) 0x0045DAF0) +#define InitialiseLarson ((void (__cdecl*)(__int16)) 0x00469F70) +#define ControlLarson ((void (__cdecl*)(__int16)) 0x0046A080) +#define InitialiseCyborg ((void (__cdecl*)(__int16)) 0x0043A2C0) +#define ControlCyborg ((void (__cdecl*)(__int16)) 0x0043A340) +#define InitialiseGuardM16 ((void (__cdecl*)(__int16)) 0x00478180) +#define ControlGuardM16 ((void (__cdecl*)(__int16)) 0x00478250) +#define InitialiseChef ((void (__cdecl*)(__int16)) 0x00410990) +#define ControlChef ((void (__cdecl*)(__int16)) 0x00410A60) +#define InitialiseGuardLaser ((void (__cdecl*)(__int16)) 0x0048CD40) +#define ControlGuardLaser ((void (__cdecl*)(__int16)) 0x0048CDD0) +#define InitialiseSmallDragon ((void (__cdecl*)(__int16)) 0x0043BEA0) +#define ControlSmallDragon ((void (__cdecl*)(__int16)) 0x0043BF70) +#define InitialiseImp ((void (__cdecl*)(__int16)) 0x0043CCA0) +#define ControlImp ((void (__cdecl*)(__int16)) 0x0043BEA0) +#define InitialiseLightingGuide ((void (__cdecl*)(__int16)) 0x0048E500) +#define ControlLightingGuide ((void (__cdecl*)(__int16)) 0x0048E580) +#define InitialiseBrownBeast ((void (__cdecl*)(__int16)) 0x0048E8E0) +#define ControlBrowsBeast ((void (__cdecl*)(__int16)) 0x0048E960) +#define InitialiseLagoonWitch ((void (__cdecl*)(__int16)) 0x0047D2D0) +#define ControlLagoonWitch ((void (__cdecl*)(__int16)) 0x0047D360) +#define InitialiseInvisibleGhost ((void (__cdecl*)(__int16)) 0x00477A20) +#define ControlInvisibleGhost ((void (__cdecl*)(__int16)) 0x00477AB0) +#define InitialiseLittleBats ((void (__cdecl*)(__int16)) 0x00407EC0) +#define ControlLittleBats ((void (__cdecl*)(__int16)) 0x00407F50) +#define InitialiseSpiders ((void (__cdecl*)(__int16)) 0x0043F2B0) +#define ControlSpiders ((void (__cdecl*)(__int16)) 0x0047A200) +#define InitialiseGladiator ((void (__cdecl*)(__int16)) 0x00436670) +#define ControlGladiator ((void (__cdecl*)(__int16)) 0x00436700) +#define InitialiseRomanStatue ((void (__cdecl*)(__int16)) 0x0046BB00) +#define ControlRomanStatue ((void (__cdecl*)(__int16)) 0x0046BC10) +#define InitialiseAutoGuns ((void (__cdecl*)(__int16)) 0x0043F8B0) +#define ControlAutoGuns ((void (__cdecl*)(__int16)) 0x004078A0) +#define ControlGunShip ((void (__cdecl*)(__int16)) 0x00487FF0) \ No newline at end of file diff --git a/TR5Main/Specific/setup.cpp b/TR5Main/Specific/setup.cpp index e9e876fb9..ed711f8ed 100644 --- a/TR5Main/Specific/setup.cpp +++ b/TR5Main/Specific/setup.cpp @@ -3,16 +3,30 @@ #include "setup.h" #include "..\Game\draw.h" #include "..\Game\collide.h" +#include "..\Game\effect2.h" +#include "..\Game\effects.h" #include "..\Game\Box.h" #include "..\Game\switch.h" #include "..\Game\missile.h" #include "..\Game\control.h" #include "..\Game\pickup.h" #include "..\Game\lara1gun.h" +#include "..\Game\laraflar.h" +#include "..\Game\larafire.h" +#include "..\Game\laramisc.h" #include "..\Game\objects.h" #include "..\Game\door.h" +#include "..\Game\rope.h" +#include "..\Game\traps.h" +#include "..\Objects\oldobjects.h" #include "..\Objects\newobjects.h" +#include "..\Game\lion.h" +#include "..\Game\mafia.h" +#include "..\Game\rat.h" +#include "..\Game\hydra.h" +#include "..\Game\guardian.h" + #include #include @@ -1408,7 +1422,7 @@ void __cdecl BaddyObjects() obj->biteOffset = 7; obj->initialise = InitialiseArmedBaddy2; obj->collision = CreatureCollision; - obj->control = ControlArmedBaddy2; + obj->control = ArmedBaddy2Control; obj->drawRoutineExtra = DrawBaddieGunFlash; obj->shadowSize = UNIT_SHADOW / 2; obj->hitPoints = 26; @@ -2374,10 +2388,9 @@ void __cdecl ObjectObjects() obj = &Objects[ID_FLARE_ITEM]; if (obj->loaded) { - obj->initialise = NULL; obj->collision = PickupCollision; obj->control = FlareControl; - obj->drawRoutine = DrawFlare; + obj->drawRoutine = DrawFlareItem; obj->pivotLength = 256; obj->hitPoints = 256; } @@ -2385,31 +2398,15 @@ void __cdecl ObjectObjects() obj = &Objects[ID_BURNING_TORCH_ITEM]; if (obj->loaded) { - obj->initialise = NULL; obj->control = TorchControl; } - obj = &Objects[ID_CHAFF]; - if (obj->loaded) - { - obj->control = ChaffControl; - } - obj = &Objects[ID_TORPEDO]; if (obj->loaded) { obj->control = TorpedoControl; } - obj = &Objects[ID_CROSSBOW_BOLT]; - if (obj->loaded) - { - obj->initialise = NULL; - obj->collision = NULL; - obj->control = ControlCrossbowOrGrapplingBolt; - obj->drawRoutine = DrawCrossbowOrGrapplingBolt; - } - { obj = &Objects[ID_PUSHABLE_OBJECT1]; if (obj->loaded) @@ -2528,13 +2525,6 @@ void __cdecl ObjectObjects() obj->control = SteelDoorControl; } - obj = &Objects[ID_HEADSET_TALKING_POINT]; - if (obj->loaded) - { - obj->drawRoutine = NULL; - obj->control = HeadSetTalkingPointControl; - } - /* v25 = 0; do @@ -2555,22 +2545,6 @@ void __cdecl ObjectObjects() obj->drawRoutine = NULL; } - obj = &Objects[ID_SHOOT_SWITCH1]; - if (obj->loaded) - { - obj->initialise = InitialiseGrapplingGunSwitch; - obj->collision = GrapplingGunTargetCollision; - obj->control = AnimatingControl; - } - - obj = &Objects[ID_SHOOT_SWITCH2]; - if (obj->loaded) - { - obj->initialise = InitialiseGrapplingGunSwitch; - obj->collision = GrapplingGunTargetCollision; - obj->control = AnimatingControl; - } - // by default loaded, explosion time :D obj = &Objects[ID_BODY_PART]; obj->loaded = true; @@ -2928,14 +2902,14 @@ void __cdecl PickupObjects() INIT_PICKUP(ID_PUZZLE_ITEM7_COMBO2); INIT_PICKUP(ID_PUZZLE_ITEM8_COMBO1); INIT_PICKUP(ID_PUZZLE_ITEM8_COMBO2); - INIT_PICKUP(ID_PUZZLE_ITEM1); - INIT_PICKUP(ID_PUZZLE_ITEM2); - INIT_PICKUP(ID_PUZZLE_ITEM3); - INIT_PICKUP(ID_PUZZLE_ITEM4); - INIT_PICKUP(ID_PUZZLE_ITEM5); - INIT_PICKUP(ID_PUZZLE_ITEM6); - INIT_PICKUP(ID_PUZZLE_ITEM7); - INIT_PICKUP(ID_PUZZLE_ITEM8); + INIT_PICKUP(ID_KEY_ITEM1); + INIT_PICKUP(ID_KEY_ITEM2); + INIT_PICKUP(ID_KEY_ITEM3); + INIT_PICKUP(ID_KEY_ITEM4); + INIT_PICKUP(ID_KEY_ITEM5); + INIT_PICKUP(ID_KEY_ITEM6); + INIT_PICKUP(ID_KEY_ITEM7); + INIT_PICKUP(ID_KEY_ITEM8); INIT_PICKUP(ID_KEY_ITEM1_COMBO1); INIT_PICKUP(ID_KEY_ITEM1_COMBO2); INIT_PICKUP(ID_KEY_ITEM2_COMBO1); diff --git a/TR5Main/Specific/setup.h b/TR5Main/Specific/setup.h index c117e45b3..303d55bfd 100644 --- a/TR5Main/Specific/setup.h +++ b/TR5Main/Specific/setup.h @@ -13,172 +13,6 @@ void __cdecl InitialiseObjects(); void Inject_Setup(); -/* BaddyObjects() */ - -#define DrawBaddieGunFlash ((void (__cdecl*)(ITEM_INFO*)) 0x00466880) -#define InitialiseLaraLoad ((void (__cdecl*)(__int16)) 0x004568C0) -#define InitialiseGuard ((void (__cdecl*)(__int16)) 0x0043F420) -#define ControlGuard ((void (__cdecl*)(__int16)) 0x0046F5E0) -#define InitialiseSubmarine ((void (__cdecl*)(__int16)) 0x0045D360) -#define ControlSubmarine ((void (__cdecl*)(__int16)) 0x0045D3F0) -#define InitialiseLion ((void (__cdecl*)(__int16)) 0x0045AC80) -#define LionControl ((void (__cdecl*)(__int16)) 0x0045AD00) -#define InitialiseDoberman ((void (__cdecl*)(__int16)) 0x00428940) -#define ControlDoberman ((void (__cdecl*)(__int16)) 0x00428A10) -#define InitialiseDog ((void (__cdecl*)(__int16)) 0x0043B670) -#define ControlDog ((void (__cdecl*)(__int16)) 0x0043B730) -#define InitialiseReaper ((void (__cdecl*)(__int16)) 0x0045DA70) -#define ControlReaper ((void (__cdecl*)(__int16)) 0x0045DAF0) -#define InitialiseArmedBaddy2 ((void (__cdecl*)(__int16)) 0x0045B7B0) -#define ControlArmedBaddy2 ((void (__cdecl*)(__int16)) 0x0045B840) -#define InitialiseLarson ((void (__cdecl*)(__int16)) 0x00469F70) -#define ControlLarson ((void (__cdecl*)(__int16)) 0x0046A080) -#define InitialiseCyborg ((void (__cdecl*)(__int16)) 0x0043A2C0) -#define ControlCyborg ((void (__cdecl*)(__int16)) 0x0043A340) -#define InitialiseGuardM16 ((void (__cdecl*)(__int16)) 0x00478180) -#define ControlGuardM16 ((void (__cdecl*)(__int16)) 0x00478250) -#define InitialiseChef ((void (__cdecl*)(__int16)) 0x00410990) -#define ControlChef ((void (__cdecl*)(__int16)) 0x00410A60) -#define InitialiseGuardLaser ((void (__cdecl*)(__int16)) 0x0048CD40) -#define ControlGuardLaser ((void (__cdecl*)(__int16)) 0x0048CDD0) -#define InitialiseSmallDragon ((void (__cdecl*)(__int16)) 0x0043BEA0) -#define ControlSmallDragon ((void (__cdecl*)(__int16)) 0x0043BF70) -#define InitialiseImp ((void (__cdecl*)(__int16)) 0x0043CCA0) -#define ControlImp ((void (__cdecl*)(__int16)) 0x0043BEA0) -#define InitialiseLightingGuide ((void (__cdecl*)(__int16)) 0x0048E500) -#define ControlLightingGuide ((void (__cdecl*)(__int16)) 0x0048E580) -#define InitialiseBrownBeast ((void (__cdecl*)(__int16)) 0x0048E8E0) -#define ControlBrowsBeast ((void (__cdecl*)(__int16)) 0x0048E960) -#define InitialiseLagoonWitch ((void (__cdecl*)(__int16)) 0x0047D2D0) -#define ControlLagoonWitch ((void (__cdecl*)(__int16)) 0x0047D360) -#define InitialiseInvisibleGhost ((void (__cdecl*)(__int16)) 0x00477A20) -#define ControlInvisibleGhost ((void (__cdecl*)(__int16)) 0x00477AB0) -#define InitialiseLittleRats ((void (__cdecl*)(__int16)) 0x0046B220) -#define ControlLittleRats ((void (__cdecl*)(__int16)) 0x0046AB30) -#define InitialiseLittleBats ((void (__cdecl*)(__int16)) 0x00407EC0) -#define ControlLittleBats ((void (__cdecl*)(__int16)) 0x00407F50) -#define InitialiseSpiders ((void (__cdecl*)(__int16)) 0x0043F2B0) -#define ControlSpiders ((void (__cdecl*)(__int16)) 0x0047A200) -#define InitialiseGladiator ((void (__cdecl*)(__int16)) 0x00436670) -#define ControlGladiator ((void (__cdecl*)(__int16)) 0x00436700) -#define InitialiseRomanStatue ((void (__cdecl*)(__int16)) 0x0046BB00) -#define ControlRomanStatue ((void (__cdecl*)(__int16)) 0x0046BC10) -#define InitialiseLaserHead ((void (__cdecl*)(__int16)) 0x00436FE0) -#define ControlLaserHead ((void (__cdecl*)(__int16)) 0x00437680) -#define InitialiseAutoGuns ((void (__cdecl*)(__int16)) 0x0043F8B0) -#define ControlAutoGuns ((void (__cdecl*)(__int16)) 0x004078A0) -#define ControlGunShip ((void (__cdecl*)(__int16)) 0x00487FF0) - -/* TrapObjects */ - -#define ElectricityWiresControl ((void (__cdecl*)(__int16)) 0x00442610) -#define InitialiseRomeHammer ((void (__cdecl*)(__int16)) 0x0043ECB0) -#define InitialiseDeathSlide ((void (__cdecl*)(__int16)) 0x0041CC70) -#define DeathSlideCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0041CCE0) -#define DeathSlideControl ((void (__cdecl*)(__int16)) 0x0041CE00) -#define RollingBallCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0048B6D0) -#define RollingBallControl ((void (__cdecl*)(__int16)) 0x0048AE60) -#define InitialiseTwoBlocksPlatform ((void (__cdecl*)(__int16)) 0x0043D5D0) -#define TwoBlocksPlatformControl ((void (__cdecl*)(__int16)) 0x0048BBB0) -#define TwoBlocksPlatformFloor ((void (__cdecl*)(ITEM_INFO*,__int32,__int32,__int32,int*)) 0x0048B9E0) -#define TwoBlocksPlatformCeiling ((void (__cdecl*)(ITEM_INFO*,__int32,__int32,__int32,int*)) 0x0048BA50) -#define KillAllTriggersControl ((void (__cdecl*)(__int16)) 0x00431030) -#define FallingCeilingCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x004127C0) -#define FallingCeilingControl ((void (__cdecl*)(__int16)) 0x004899D0) -#define InitialiseFallingBlock ((void (__cdecl*)(__int16)) 0x0043D330) -#define FallingBlockCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00489750) -#define FallingBlockControl ((void (__cdecl*)(__int16)) 0x00489820) -#define FallingBlockFloor ((void (__cdecl*)(ITEM_INFO*,__int32,__int32,__int32,int*)) 0x00489910) -#define FallingBlockCeiling ((void (__cdecl*)(ITEM_INFO*,__int32,__int32,__int32,int*)) 0x00489980) -#define InitialisePushableBlock ((void (__cdecl*)(__int16)) 0x0045E720) -#define PushableBlockControl ((void (__cdecl*)(__int16)) 0x0045EA30) -#define PushableBlockCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0045F570) -#define DartEmitterControl ((void (__cdecl*)(__int16)) 0x00489B30) -#define DrawDart ((void (__cdecl*)(ITEM_INFO*)) 0x004CBB10) -#define DartControl ((void (__cdecl*)(__int16)) 0x00489D60) -#define InitialiseFlameEmitter ((void (__cdecl*)(__int16)) 0x0043D370) -#define FlameEmitterCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00433B40) -#define FlameEmitterControl ((void (__cdecl*)(__int16)) 0x00489F70) -#define InitialiseFlameEmitter2 ((void (__cdecl*)(__int16)) 0x0043D4E0) -#define FlameEmitter2Control ((void (__cdecl*)(__int16)) 0x0048A3B0) -#define FlameEmitter3Control ((void (__cdecl*)(__int16)) 0x0048A570) -#define FlameControl ((void (__cdecl*)(__int16)) 0x0048AB80) -#define InitialiseRopeTrap ((void (__cdecl*)()) 0x0046EE40) -#define GenSlot1Control ((void (__cdecl*)(__int16)) 0x00406580) -#define InitialiseGenSlot2 ((void (__cdecl*)(__int16)) 0x0043FD70) -#define GenSlot2Control ((void (__cdecl*)(__int16)) 0x00488710) -#define DrawGenSlot2 ((void (__cdecl*)(ITEM_INFO*)) 0x004CFF80) -#define InitialiseGenSlot3 ((void (__cdecl*)(__int16)) 0x004402E0) -#define InitialiseGenSlot4 ((void (__cdecl*)(__int16)) 0x00440440) -#define GenSlot4Control ((void (__cdecl*)(__int16)) 0x00486450) -#define InitialiseHighObject1 ((void (__cdecl*)(__int16)) 0x0043FC30) -#define HighObject1Control ((void (__cdecl*)(__int16)) 0x004067E0) -#define InitialisePortal ((void (__cdecl*)(__int16)) 0x0043FAA0) -#define PortalControl ((void (__cdecl*)(__int16)) 0x00401AEB) -#define DrawPortal ((void (__cdecl*)(ITEM_INFO*)) 0x004CFF80) -#define InitialiseRope ((void (__cdecl*)(__int16)) 0x0046F060) -#define RopeControl ((void (__cdecl*)(__int16)) 0x0046DD40) -#define RopeCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0046DAE0) -#define InitialiseWreckingBall ((void (__cdecl*)(__int16)) 0x0043EF20) -#define WreckingBallCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00441D50) -#define WreckingBallControl ((void (__cdecl*)(__int16)) 0x00441410) -#define DrawWreckingBall ((void (__cdecl*)(ITEM_INFO*)) 0x00441F50) -#define InitialiseVentilator ((void (__cdecl*)(__int16)) 0x0043F3D0) -#define VentilatorControl ((void (__cdecl*)(__int16)) 0x00405610) -#define InitialiseRaisingCog ((void (__cdecl*)(__int16)) 0x00440320) -#define RaisingCogControl ((void (__cdecl*)(__int16)) 0x00406040) - -/* ObjectObjects */ - -#define InitialiseSmashObject ((void (__cdecl*)(__int16)) 0x0043D7F0) -#define InitialiseSwitch ((void (__cdecl*)(__int16)) 0x00440070) -#define SequenceControl ((void (__cdecl*)(__int16)) 0x0047F520) -#define SequenceCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0047F610) -#define LeverSwitchCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x0047EE00) -#define InitialisePulleySwitch ((void (__cdecl*)(__int16)) 0x0043E1F0) -#define InitialiseCrowDoveSwitch ((void (__cdecl*)(__int16)) 0x0043ECF0) -#define InitialiseDoor ((void (__cdecl*)(__int16)) 0x0043DB60) -#define DrawLiftDoor ((void (__cdecl*)(ITEM_INFO*)) 0x0045AAF0) -#define DoubleDoorControl ((void (__cdecl*)(__int16)) 0x00429840) -#define InitialiseTrapDoor ((void (__cdecl*)(__int16)) 0x0043D2F0) -#define TrapDoorFloorCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x004891F0) -#define TrapDoorCeilingCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00489450) -#define TrapDoorNormalCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x004896D0) -#define TrapDoorControl ((void (__cdecl*)(__int16)) 0x00488FA0) -#define InitialiseCupboard ((void (__cdecl*)(__int16)) 0x0043EDB0) -#define CupboardCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x004699A0) -#define CupboardControl ((void (__cdecl*)(__int16)) 0x00469660) -#define FlareControl ((void (__cdecl*)(__int16)) 0x00455460) -#define DrawFlare ((void (__cdecl*)(ITEM_INFO*)) 0x00454A90) -#define TorchControl ((void (__cdecl*)(__int16)) 0x00434390) -#define ChaffControl ((void (__cdecl*)(__int16)) 0x0045CFB0) -#define TorpedoControl ((void (__cdecl*)(__int16)) 0x0045C9F0) -#define ControlCrossbowOrGrapplingBolt ((void (__cdecl*)(__int16)) 0x0044E8B0) -#define DrawCrossbowOrGrapplingBolt ((void (__cdecl*)(ITEM_INFO*)) 0x004852E0) -#define KeyHoleCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00468930) -#define PuzzleDoneCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00468C00) -#define InitialiseAnimating ((void (__cdecl*)(__int16)) 0x00440100) -#define InitialiseTightRope ((void (__cdecl*)(__int16)) 0x0043ED30) -#define InitialiseSteelDoor ((void (__cdecl*)(__int16)) 0x0043F180) -#define SteelDoorControl ((void (__cdecl*)(__int16)) 0x00486BE0) -#define SteelDoorCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00487AD0) -#define HeadSetTalkingPointControl ((void (__cdecl*)(__int16)) 0x0048E3C0) -#define InitialiseXRayMachine ((void (__cdecl*)(__int16)) 0x0043FA20) -#define InitialiseGrapplingGunTarget ((void (__cdecl*)(__int16)) 0x0043F270) -#define InitialiseGrapplingGunSwitch ((void (__cdecl*)(__int16)) 0x0043FBC0) -#define GrapplingGunTargetCollision ((void (__cdecl*)(__int16,ITEM_INFO*,COLL_INFO*)) 0x00412770) -#define InitialiseTeethSpike ((void (__cdecl*)(__int16)) 0x0043FBC0) -#define TeethSpikeControl ((void (__cdecl*)(__int16)) 0x0043FBC0) -#define DrawScaledSpike ((void (__cdecl*)(ITEM_INFO*)) 0x0043FBC0) -#define InitialiseRaisingBlock ((void (__cdecl*)(__int16)) 0x0043D730) -#define RaisingBlockControl ((void (__cdecl*)(__int16)) 0x0048C3D0) -#define InitialiseSmokeEmitter ((void (__cdecl*)(__int16)) 0x0043D9D0) -#define SmokeEmitterControl ((void (__cdecl*)(__int16)) 0x00431560) -#define DrawLensFlare ((void (__cdecl*)(ITEM_INFO*)) 0x00485290) -#define ControlWaterfallMist ((void (__cdecl*)(__int16)) 0x00432CA0) -#define ControlEnemyMissile ((void (__cdecl*)(__int16)) 0x00431E70) -#define HighObject2Control ((void (__cdecl*)(__int16)) 0x004070D0) - #define INIT_PICKUP(obj_id) \ obj = &Objects[obj_id]; \ if (obj->loaded) \ diff --git a/TR5Main/TR5Main.vcxproj b/TR5Main/TR5Main.vcxproj index 9e4f365a0..e930e38c2 100644 --- a/TR5Main/TR5Main.vcxproj +++ b/TR5Main/TR5Main.vcxproj @@ -93,7 +93,7 @@ NotUsing - Level3 + TurnOffAllWarnings Disabled true WIN32;_DEBUG;TR5MAIN_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) @@ -133,13 +133,14 @@ xcopy /Y "$(ProjectDir)Scripting\Scripts\*.lua" "$(TargetDir)\Scripts" NotUsing - Level3 + TurnOffAllWarnings MaxSpeed true true true WIN32;NDEBUG;TR5MAIN_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true + %(AdditionalIncludeDirectories) Windows @@ -149,6 +150,12 @@ xcopy /Y "$(ProjectDir)Scripting\Scripts\*.lua" "$(TargetDir)\Scripts" %(AdditionalLibraryDirectories) bass.lib;bassmix.lib;bass_fx.lib;d3d9.lib;dinput8.lib;d3dx9.lib;%(AdditionalDependencies) + + md "$(TargetDir)\Shaders" +xcopy /Y "$(ProjectDir)Shaders\*.fx" "$(TargetDir)\Shaders" +md "$(TargetDir)\Scripts" +xcopy /Y "$(ProjectDir)Scripting\Scripts\*.lua" "$(TargetDir)\Scripts" + @@ -170,6 +177,7 @@ xcopy /Y "$(ProjectDir)Scripting\Scripts\*.lua" "$(TargetDir)\Scripts" +