mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-11 04:56:49 +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 CalculateCamera ((void(__cdecl*)()) 0x0040ED30)
|
||||
#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 do_new_cutscene_camera ((void(__cdecl*)()) 0x00421480)
|
||||
#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()
|
||||
{
|
||||
INJECT(0x00416760, TestTriggers);
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
//#define RumbleScreen ((void (__cdecl*)()) 0x00442C90)
|
||||
#define ExplodeItemNode ((int (__cdecl*)(ITEM_INFO*, int, int, int)) 0x0041ABF0)
|
||||
//#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 PlaySoundTrack ((void (__cdecl*)(short, short)) 0x00418B90)
|
||||
//#define AlterFloorHeight ((void (__cdecl*)(ITEM_INFO*, int)) 0x004159F0)
|
||||
|
@ -86,6 +86,7 @@ void AddRoomFlipItems(ROOM_INFO* r);
|
|||
void RemoveRoomFlipItems(ROOM_INFO* r);
|
||||
void PlaySoundTrack(short track, short flags);
|
||||
void RumbleScreen();
|
||||
void RefreshCamera(short type, short* data);
|
||||
|
||||
unsigned __stdcall GameMain(void*);
|
||||
void Inject_Control();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue