48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
// door_key.c.inc
|
|
|
|
Gfx *Geo18_802BA2B0(s32 run, struct GraphNode *node, UNUSED f32 mtx[4][4]) {
|
|
struct Object *sp4;
|
|
if (run == TRUE) {
|
|
sp4 = (struct Object *) D_8032CFA0;
|
|
((struct GraphNodeScaleOptionalDisplayList *) node->next)->scale = sp4->oUnknownUnkF4_F32;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void bhv_door_key_1_loop(void) {
|
|
s32 sp1C;
|
|
sp1C = o->header.gfx.unk38.animFrame;
|
|
set_obj_animation_and_sound_state(0);
|
|
if (sp1C < 38)
|
|
o->oDoorKey1UnkF4 = 0.0f;
|
|
else if (sp1C < 49)
|
|
o->oDoorKey1UnkF4 = 0.2f;
|
|
else if (sp1C < 58)
|
|
o->oDoorKey1UnkF4 = (sp1C - 53) * 0.11875f + 0.2; // 0.11875?
|
|
else if (sp1C < 59)
|
|
o->oDoorKey1UnkF4 = 1.1f;
|
|
else if (sp1C < 60)
|
|
o->oDoorKey1UnkF4 = 1.05f;
|
|
else
|
|
o->oDoorKey1UnkF4 = 1.0f;
|
|
if (o->oTimer > 150)
|
|
mark_object_for_deletion(o);
|
|
}
|
|
|
|
void bhv_door_key_2_loop(void) {
|
|
s32 sp1C = o->header.gfx.unk38.animFrame;
|
|
set_obj_animation_and_sound_state(1);
|
|
if (sp1C < 38)
|
|
o->oDoorKey2UnkF4 = 0.2f;
|
|
else if (sp1C < 52)
|
|
o->oDoorKey2UnkF4 = (sp1C - 42) * 0.042857f + 0.2; // TODO 3/70?
|
|
else if (sp1C < 94)
|
|
o->oDoorKey2UnkF4 = 0.8f;
|
|
else if (sp1C < 0x65)
|
|
o->oDoorKey2UnkF4 = (101 - sp1C) * 0.085714f + 0.2; // TODO 6/70?
|
|
else
|
|
o->oDoorKey2UnkF4 = 0.2f;
|
|
if (o->oTimer > 138)
|
|
mark_object_for_deletion(o);
|
|
}
|