Attempt to decompile doorCreateSparks

This commit is contained in:
Ryan Dwyer
2021-11-28 15:58:07 +10:00
parent 4e59578b41
commit 6116581d3e
3 changed files with 56 additions and 4 deletions
+53 -3
View File
@@ -71278,7 +71278,7 @@ bool posIsInDrawDistance(struct coord *pos)
}
GLOBAL_ASM(
glabel func0f08ea50
glabel doorCreateSparks
/* f08ea50: 27bdff18 */ addiu $sp,$sp,-232
/* f08ea54: afb30050 */ sw $s3,0x50($sp)
/* f08ea58: 00809825 */ or $s3,$a0,$zero
@@ -71486,6 +71486,56 @@ glabel func0f08ea50
/* f08ed70: 27bd00e8 */ addiu $sp,$sp,0xe8
);
// Mismatch: float instructions are ordered differently
//void doorCreateSparks(struct doorobj *door)
//{
// struct pad pad;
// struct coord sp88;
// struct coord sp7c;
// struct coord sp70;
// f32 height;
// s32 i;
//
// padUnpack(door->base.pad, PADFIELD_POS | PADFIELD_UP | PADFIELD_NORMAL | PADFIELD_BBOX, &pad);
// height = pad.bbox.ymax - pad.bbox.ymin;
//
// sp88.x = sp7c.x = pad.pos.x + pad.up.x * (pad.bbox.ymin + height * (1 - door->frac));
// sp88.y = sp7c.y = pad.pos.y + pad.up.y * (pad.bbox.ymin + height * (1 - door->frac));
// sp88.z = sp7c.z = pad.pos.z + pad.up.z * (pad.bbox.ymin + height * (1 - door->frac));
//
// sp88.x += pad.look.x * pad.bbox.zmax;
// sp88.y += pad.look.y * pad.bbox.zmax;
// sp88.z += pad.look.z * pad.bbox.zmax;
//
// sp7c.x += pad.look.x * pad.bbox.zmin;
// sp7c.y += pad.look.y * pad.bbox.zmin;
// sp7c.z += pad.look.z * pad.bbox.zmin;
//
// sp70.x = -pad.up.x;
// sp70.y = -pad.up.y;
// sp70.z = -pad.up.z;
//
// sparksCreate(door->base.prop->rooms[0], door->base.prop, &sp88, &sp70, &pad.up, SPARKTYPE_09);
//
// sparksCreate(door->base.prop->rooms[0], door->base.prop, &sp7c, &sp70, &pad.up, SPARKTYPE_09);
//
// if (random() % 2) {
// sparksCreate(door->base.prop->rooms[0], door->base.prop, &sp88, &sp70, &pad.up, SPARKTYPE_0C);
// } else {
// sparksCreate(door->base.prop->rooms[0], door->base.prop, &sp88, &sp70, &pad.up, SPARKTYPE_0D);
// }
//
// func0f0939f8(NULL, door->base.prop, func0f095200(), -1,
// -1, 0, 0, 0, &sp88, -1, door->base.prop->rooms, -1, -1, -1, -1);
//
// func0f0939f8(NULL, door->base.prop, func0f095200(), -1,
// -1, 0, 0, 0, &sp7c, -1, door->base.prop->rooms, -1, -1, -1, -1);
//
// for (i = 0; door->base.prop->rooms[i] != -1; i++) {
// roomAdjustLighting(door->base.prop->rooms[i], 128, 200);
// }
//}
/**
* Calculate/tick a door's frac (the amount it's open) without any consideration
* for props which might be blocking the door. The new frac is written to the
@@ -71526,7 +71576,7 @@ bool doorCalcIntendedFrac(struct doorobj *door)
struct doorobj *loopdoor;
door->fracspeed = 0.0f;
func0f08ea50(door);
doorCreateSparks(door);
if (random() % 2) {
dothething = true;
@@ -71540,7 +71590,7 @@ bool doorCalcIntendedFrac(struct doorobj *door)
while (loopdoor) {
if (random() % 2 && loopdoor->mode != DOORMODE_IDLE) {
loopdoor->fracspeed = 0.0f;
func0f08ea50(loopdoor);
doorCreateSparks(loopdoor);
if (dothething) {
func0f0926bc(loopdoor->base.prop, 12, 0xffff);
+2
View File
@@ -3465,7 +3465,9 @@
#define SPARKTYPE_04 0x04
#define SPARKTYPE_09 0x09
#define SPARKTYPE_0A 0x0a
#define SPARKTYPE_0C 0x0c
#define SPARKTYPE_0B 0x0b
#define SPARKTYPE_0D 0x0d
#define SPARKTYPE_0F 0x0f
#define SPARKTYPE_16 0x16
#define SPARKTYPE_17 0x17
+1 -1
View File
@@ -328,7 +328,7 @@ f32 func0f08e6bc(struct prop *prop, f32 arg1);
bool func0f08e794(struct coord *coord, f32 arg1);
bool func0f08e8ac(struct prop *prop, struct coord *coord, f32 arg2, bool arg3);
bool posIsInDrawDistance(struct coord *arg);
void func0f08ea50(struct doorobj *door);
void doorCreateSparks(struct doorobj *door);
bool doorCalcIntendedFrac(struct doorobj *door);
void doorsCalcFrac(struct doorobj *door);
f32 func0f08f538(f32 x, f32 y);