From c9dee7caa3ea2ed9a40b137675161e192545e188 Mon Sep 17 00:00:00 2001 From: Niko Date: Wed, 13 Mar 2024 12:58:54 -0400 Subject: [PATCH] VehAfterColl --- .../General/Vehicle/VehAfterColl_GetSurface.c | 11 +++++ .../General/Vehicle/VehAfterColl_GetTerrain.c | 11 +++++ .../WorkInProgress/src/VEHICLE/VehAfterColl.c | 21 -------- decompile/buildList.txt | 13 ++--- include/regionsEXE.h | 48 ++++++++++--------- 5 files changed, 54 insertions(+), 50 deletions(-) create mode 100644 decompile/General/Vehicle/VehAfterColl_GetSurface.c create mode 100644 decompile/General/Vehicle/VehAfterColl_GetTerrain.c delete mode 100644 decompile/WorkInProgress/src/VEHICLE/VehAfterColl.c diff --git a/decompile/General/Vehicle/VehAfterColl_GetSurface.c b/decompile/General/Vehicle/VehAfterColl_GetSurface.c new file mode 100644 index 00000000..d8c07325 --- /dev/null +++ b/decompile/General/Vehicle/VehAfterColl_GetSurface.c @@ -0,0 +1,11 @@ +#include + +void* DECOMP_VehAfterColl_GetSurface(u_int scrubId) +{ + struct Scrub* sc = &data.MetaDataScrub[0]; + + if (scrubId < 7) + return &sc[scrubId]; + + return sc; +} \ No newline at end of file diff --git a/decompile/General/Vehicle/VehAfterColl_GetTerrain.c b/decompile/General/Vehicle/VehAfterColl_GetTerrain.c new file mode 100644 index 00000000..25c3eeaa --- /dev/null +++ b/decompile/General/Vehicle/VehAfterColl_GetTerrain.c @@ -0,0 +1,11 @@ +#include + +struct Terrain* DECOMP_VehAfterColl_GetTerrain(u_char terrainType) +{ + struct Terrain* ter = &data.MetaDataTerrain[0]; + + if (terrainType < 0x15) + return &ter[terrainType]; + + return ter; +} diff --git a/decompile/WorkInProgress/src/VEHICLE/VehAfterColl.c b/decompile/WorkInProgress/src/VEHICLE/VehAfterColl.c deleted file mode 100644 index 7ff594e3..00000000 --- a/decompile/WorkInProgress/src/VEHICLE/VehAfterColl.c +++ /dev/null @@ -1,21 +0,0 @@ -#include - -// overbudget by 4 bytes each, how? - -void* DECOMP_VehAfterColl_GetSurface(u_int scrubId) -{ - if (6 < scrubId) - { - scrubId = 0; - } - return &data.MetaDataScrub[scrubId]; -} - -void* DECOMP_VehAfterColl_GetTerrain(u_char terrainType) -{ - if (20 < terrainType) - { - terrainType = 0; - } - return &data.MetaDataTerrain[terrainType]; -} diff --git a/decompile/buildList.txt b/decompile/buildList.txt index 12ef8f03..6183df82 100644 --- a/decompile/buildList.txt +++ b/decompile/buildList.txt @@ -1,5 +1,5 @@ -// 456+43+33+27+38+14+18+16+19+12+6+1+8+9+1+1+1+2+2+3+3+2+4+2+3+16+3+47-12 = 778 rewritten so far -// 456 for every 'common' and ',' +// 458+43+33+27+38+14+18+16+19+12+6+1+8+9+1+1+1+2+2+3+3+2+4+2+3+16+3+47-12 = 780 rewritten so far +// 458 for every 'common' and ',' // additions for every file that has multiple functions, // 43 for HOWL block // 33 for LOAD block @@ -20,11 +20,11 @@ // +2 for 223 // +2 for 224 // +3 for CS_Garage -// +3 for VehPtr_Blasted -// +2 for VehPtr_EngineRevving +// +3 for VehStuckProc_Tumble +// +2 for VehStuckProc_RevEngine // +4 for VehPhysProc_Driving // +2 for VehStuckProc_PlantEaten -// +3 for VehPtr_MaskGrab +// +3 for VehStuckProc_MaskGrab // +16 for RB_Block1 // +3 for RB_CtrLetter // +47 for RB_Block2 @@ -604,7 +604,8 @@ common, exe, UI_DrawPosSuffix, 0x0, General/UI/UI_AAA_BigBlock1.c common, exe, UI_RaceStart_IntroText1P, 0x0, General/UI/UI_RaceStart_IntroText1P.c common, exe, UI_RaceEnd_GetDriverClock, 0x0, General/UI/UI_RaceEnd_GetDriverClock.c -// need VehAfterColl +common, exe, VehAfterColl_GetSurface, 0x0, General/Vehicle/VehAfterColl_GetSurface.c +common, exe, VehAfterColl_GetTerrain, 0x0, General/Vehicle/VehAfterColl_GetTerrain.c //ommon, exe, VehBirth_TeleportSelf, 0x0, General/Vehicle/VehBirth_TeleportSelf.c common, exe, VehBirth_TeleportAll, 0x0, General/Vehicle/VehBirth_TeleportAll.c diff --git a/include/regionsEXE.h b/include/regionsEXE.h index 9398d332..05832e5e 100644 --- a/include/regionsEXE.h +++ b/include/regionsEXE.h @@ -7,6 +7,30 @@ struct MatrixND int t[3]; }; +struct Scrub +{ + // see FUN_80020c58 + + // 0x0 + char* name; + + // 0x4 + // & 1 + // & 2 + // & 4 - dont count time rubbing on wall + // & 8 - dont reset reserves + u_int flags; + + // 0x8 + int unk_0x8; + + // 0xC + // given to trig table + int unk_angle; + + // last valid index is 6, so 7 elements +}; + struct Terrain { // 0 @@ -2435,29 +2459,7 @@ struct Data } bakedGteMath[0x14]; // 0x80087f94 - struct - { - // see FUN_80020c58 - - // 0x0 - char* name; - - // 0x4 - // & 1 - // & 2 - // & 4 - dont count time rubbing on wall - // & 8 - dont reset reserves - u_int flags; - - // 0x8 - int unk_0x8; - - // 0xC - // given to trig table - int unk_angle; - - // last valid index is 6, so 7 elements - } MetaDataScrub[7]; + struct Scrub MetaDataScrub[7]; // 0x80088004 // MetaDataTerrain offset 0x18