mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-12 05:26:57 +03:00
Decompiled RefreshCamera
This commit is contained in:
parent
27e83a55ae
commit
3a3da05786
3 changed files with 55 additions and 2 deletions
|
@ -16,7 +16,7 @@
|
||||||
#define FixedCamera ((void(__cdecl*)()) 0x0040E890)
|
#define FixedCamera ((void(__cdecl*)()) 0x0040E890)
|
||||||
#define CalculateCamera ((void(__cdecl*)()) 0x0040ED30)
|
#define CalculateCamera ((void(__cdecl*)()) 0x0040ED30)
|
||||||
#define BinocularCamera ((void(__cdecl*)()) 0x0040FC20)
|
#define BinocularCamera ((void(__cdecl*)()) 0x0040FC20)
|
||||||
#define RefreshCamera ((void(__cdecl*)(short,short*)) 0x004165E0)
|
//#define RefreshCamera ((void(__cdecl*)(short,short*)) 0x004165E0)
|
||||||
#define CameraCollisionBounds ((int (__cdecl*)(GAME_VECTOR*,int,int)) 0x0040F5C0)
|
#define CameraCollisionBounds ((int (__cdecl*)(GAME_VECTOR*,int,int)) 0x0040F5C0)
|
||||||
#define do_new_cutscene_camera ((void(__cdecl*)()) 0x00421480)
|
#define do_new_cutscene_camera ((void(__cdecl*)()) 0x00421480)
|
||||||
#define SaveD3DCameraMatrix ((void(__cdecl*)()) 0x00497280)
|
#define SaveD3DCameraMatrix ((void(__cdecl*)()) 0x00497280)
|
||||||
|
|
|
@ -3484,6 +3484,58 @@ void RumbleScreen()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RefreshCamera(short type, short* data)
|
||||||
|
{
|
||||||
|
short trigger, value, targetOk;
|
||||||
|
|
||||||
|
targetOk = 2;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
trigger = *(data++);
|
||||||
|
value = trigger & VALUE_BITS;
|
||||||
|
|
||||||
|
switch (TRIG_BITS(trigger))
|
||||||
|
{
|
||||||
|
case TO_CAMERA:
|
||||||
|
data++;
|
||||||
|
|
||||||
|
if (value == Camera.last)
|
||||||
|
{
|
||||||
|
Camera.number = value;
|
||||||
|
|
||||||
|
if ((Camera.timer < 0)
|
||||||
|
|| (Camera.type == LOOK_CAMERA)
|
||||||
|
|| (Camera.type == COMBAT_CAMERA))
|
||||||
|
{
|
||||||
|
Camera.timer = -1;
|
||||||
|
targetOk = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Camera.type = FIXED_CAMERA;
|
||||||
|
targetOk = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
targetOk = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TO_TARGET:
|
||||||
|
if (Camera.type == LOOK_CAMERA || Camera.type == COMBAT_CAMERA)
|
||||||
|
break;
|
||||||
|
|
||||||
|
Camera.item = &Items[value];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} while (!(trigger & END_BIT));
|
||||||
|
|
||||||
|
if (Camera.item)
|
||||||
|
if (!targetOk || (targetOk == 2 && Camera.item->lookedAt && Camera.item != Camera.lastItem))
|
||||||
|
Camera.item = NULL;
|
||||||
|
|
||||||
|
if (Camera.number == -1 && Camera.timer > 0)
|
||||||
|
Camera.timer = -1;
|
||||||
|
}
|
||||||
|
|
||||||
void Inject_Control()
|
void Inject_Control()
|
||||||
{
|
{
|
||||||
INJECT(0x00416760, TestTriggers);
|
INJECT(0x00416760, TestTriggers);
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
//#define RumbleScreen ((void (__cdecl*)()) 0x00442C90)
|
//#define RumbleScreen ((void (__cdecl*)()) 0x00442C90)
|
||||||
#define ExplodeItemNode ((int (__cdecl*)(ITEM_INFO*, int, int, int)) 0x0041ABF0)
|
#define ExplodeItemNode ((int (__cdecl*)(ITEM_INFO*, int, int, int)) 0x0041ABF0)
|
||||||
//#define LavaBurn ((void (__cdecl*)(ITEM_INFO*)) 0x0048ADD0)
|
//#define LavaBurn ((void (__cdecl*)(ITEM_INFO*)) 0x0048ADD0)
|
||||||
#define RefreshCamera ((void (__cdecl*)(short, short*)) 0x004165E0)
|
//#define RefreshCamera ((void (__cdecl*)(short, short*)) 0x004165E0)
|
||||||
//#define DoFlipMap ((void (__cdecl*)(short)) 0x00418910)
|
//#define DoFlipMap ((void (__cdecl*)(short)) 0x00418910)
|
||||||
//#define PlaySoundTrack ((void (__cdecl*)(short, short)) 0x00418B90)
|
//#define PlaySoundTrack ((void (__cdecl*)(short, short)) 0x00418B90)
|
||||||
//#define AlterFloorHeight ((void (__cdecl*)(ITEM_INFO*, int)) 0x004159F0)
|
//#define AlterFloorHeight ((void (__cdecl*)(ITEM_INFO*, int)) 0x004159F0)
|
||||||
|
@ -86,6 +86,7 @@ void AddRoomFlipItems(ROOM_INFO* r);
|
||||||
void RemoveRoomFlipItems(ROOM_INFO* r);
|
void RemoveRoomFlipItems(ROOM_INFO* r);
|
||||||
void PlaySoundTrack(short track, short flags);
|
void PlaySoundTrack(short track, short flags);
|
||||||
void RumbleScreen();
|
void RumbleScreen();
|
||||||
|
void RefreshCamera(short type, short* data);
|
||||||
|
|
||||||
unsigned __stdcall GameMain(void*);
|
unsigned __stdcall GameMain(void*);
|
||||||
void Inject_Control();
|
void Inject_Control();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue