Attempt to decompile func0f08ed74

This commit is contained in:
Ryan Dwyer 2020-01-25 01:08:58 +10:00
parent 6847571ecc
commit b852ba5cb8
4 changed files with 91 additions and 9 deletions

View File

@ -46200,7 +46200,7 @@ void func0f08e0c4(struct doorobj *door)
door->fadetime60 = door->doortype == DOORTYPE_LASER ? 60 : 0;
if (door->doortype == DOORTYPE_LASER) {
door->laserfade = -1;
door->laserfade = 255;
}
}
@ -47149,6 +47149,88 @@ glabel func0f08ed74
/* f08f118: 27bd0040 */ addiu $sp,$sp,0x40
);
//bool func0f08ed74(struct doorobj *door)
//{
// bool result = false;
//
// if (door->doortype == DOORTYPE_LASER && door->fadetime60 != 0) {
// door->fadetime60 -= g_Vars.lvupdate240_60;
//
// if (door->fadetime60 < 0) {
// door->fadetime60 = 0;
// }
//
// if (door->mode == 1) {
// u32 laserfade = (door->fadetime60 * 255.0f) / 60.0f;
// door->laserfade = laserfade;
//
// return result;
// } else {
// u32 laserfade = ((60.0f - door->fadetime60) * 255.0f) / 60.0f;
// door->laserfade = laserfade;
// }
// }
//
// if (door->mode == 1 || door->mode == 2) {
// f32 maxfrac = door->mode == 1 ? door->maxfrac : 0;
//
// if (door->base.flags3 & OBJECTFLAG2_00000004) {
// s32 value = (random() % 64) + 30;
//
// if ((g_Vars.lvframenum % value) == 0) {
// bool dothething = false;
// struct doorobj *loopdoor;
//
// door->fracspeed = 0;
// func0f08ea50(door);
//
// if (random() % 2) {
// dothething = true;
// func0f0926bc(door->base.prop, 12, 0xffff);
// door->mode = 0;
// door->lastopen60 = g_Vars.lvframe60;
// }
//
// loopdoor = door;
//
// while (loopdoor) {
// if (random() % 2 && loopdoor->mode != 0) {
// loopdoor->fracspeed = 0;
// func0f08ea50(loopdoor);
//
// if (dothething) {
// func0f0926bc(loopdoor->base.prop, 12, 0xffff);
// loopdoor->mode = 0;
// loopdoor->lastopen60 = g_Vars.lvframe60;
// }
// }
//
// loopdoor = loopdoor->sibling;
//
// if (loopdoor == door) {
// break;
// }
// }
//
// func0f08df10(door->soundtype, door->base.prop);
// }
// }
//
// func0f06d90c(&door->frac, maxfrac, &door->fracspeed,
// door->accel, door->decel, door->maxspeed);
//
// if (door->frac >= door->maxfrac) {
// door->frac = door->maxfrac;
// } else if (door->frac <= 0) {
// door->frac = 0;
// }
//
// result = true;
// }
//
// return result;
//}
GLOBAL_ASM(
glabel func0f08f11c
/* f08f11c: 27bdffc8 */ addiu $sp,$sp,-56

View File

@ -672,7 +672,7 @@
// obj->flags3
#define OBJECTFLAG2_PUSHABLE 0x00000001
#define OBJECTFLAG2_GRABBABLE 0x00000002
#define OBJECTFLAG2_00000004 0x00000004 // Not used in scripts
#define OBJECTFLAG2_00000004 0x00000004 // Related to doors
#define OBJECTFLAG2_00000008 0x00000008 // Not used in scripts
#define OBJECTFLAG2_00000010 0x00000010 // Used heaps
#define OBJECTFLAG2_00000020 0x00000020 // Not used in scripts

View File

@ -105,7 +105,7 @@ u32 func0f06c28c(void);
u32 func0f06c8ac(void);
u32 func0f06cd00(void);
u32 func0f06d37c(void);
u32 func0f06d90c(void);
void func0f06d90c(f32 *frac, f32 maxfrac, f32 *fracspeed, f32 accel, f32 decel, f32 maxspeed);
u32 func0f06db00(void);
u32 func0f06dbd8(void);
u32 func0f06e87c(void);
@ -315,8 +315,8 @@ u32 func0f08e6bc(void);
u32 func0f08e794(void);
u32 func0f08e8ac(void);
u32 func0f08e9e4(void);
u32 func0f08ea50(void);
u32 func0f08ed74(void);
void func0f08ea50(struct doorobj *door);
bool func0f08ed74(struct doorobj *door);
u32 func0f08f11c(void);
u32 func0f08f538(void);
u32 func0f08f604(void);
@ -351,7 +351,7 @@ u32 func0f0923d4(void);
u32 func0f092420(void);
u32 func0f092484(void);
u32 func0f092610(void);
u32 func0f0926bc(struct prop *prop, u32 arg1, u32 arg2);
void func0f0926bc(struct prop *prop, u32 arg1, s32 arg2);
s32 func0f0927d4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4);
s32 func0f092914(s32 arg0);
u32 func0f09294c(void);

View File

@ -700,9 +700,9 @@ struct doorobj { // objtype 0x01
struct defaultobj base;
/*0x5c*/ f32 maxfrac;
/*0x60*/ f32 perimfrac;
/*0x64*/ u32 accel;
/*0x68*/ u32 decel;
/*0x6c*/ u32 maxspeed;
/*0x64*/ f32 accel;
/*0x68*/ f32 decel;
/*0x6c*/ f32 maxspeed;
/*0x70*/ u16 doorflags;
/*0x72*/ u16 doortype;
/*0x74*/ u32 keyflags;