mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-08-13 17:03:47 -04:00
e76890a796
* litle less than half way * done? * revert ganon for now * anime1 * anime 2-3 * object_ganon * rest of gaBon * missed some changes * player
316 lines
7.9 KiB
C
316 lines
7.9 KiB
C
#include "z_boss_ganon2.h"
|
|
#include "overlays/actors/ovl_En_Zl3/z_en_zl3.h"
|
|
#include "objects/object_ganon2/object_ganon2.h"
|
|
|
|
static Vec3f D_80906D60 = { 0.0f, 0.0f, 0.0f };
|
|
|
|
static Vec3f D_80906D6C = { 0.0f, 0.0f, 500.0f };
|
|
|
|
static u8 D_80906D78 = 0;
|
|
|
|
static ColliderJntSphElementInit sJntSphItemsInit1[] = {
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 0, { { 0, 0, 0 }, 30 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 1, { { 0, 0, 0 }, 30 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 2, { { 0, 0, 0 }, 30 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 3, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 4, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 5, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 6, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 7, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 8, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 9, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 10, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 11, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 12, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 13, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x10 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 14, { { 0, 0, 0 }, 20 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK0,
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
{ 0xFFCFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 15, { { 0, 0, 0 }, 30 }, 100 },
|
|
},
|
|
};
|
|
|
|
static ColliderJntSphInit sJntSphInit1 = {
|
|
{
|
|
COLTYPE_METAL,
|
|
AT_ON | AT_TYPE_ENEMY,
|
|
AC_ON | AC_TYPE_PLAYER,
|
|
OC1_ON | OC1_TYPE_PLAYER,
|
|
OC2_FIRST_ONLY | OC2_TYPE_1,
|
|
COLSHAPE_JNTSPH,
|
|
},
|
|
ARRAY_COUNT(sJntSphItemsInit1),
|
|
sJntSphItemsInit1,
|
|
};
|
|
|
|
static ColliderJntSphElementInit sJntSphItemsInit2[] = {
|
|
{
|
|
{
|
|
ELEMTYPE_UNK2,
|
|
{ 0xFFCFFFFF, 0x00, 0x40 },
|
|
{ 0xFFDFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 15, { { 0, 0, 0 }, 45 }, 100 },
|
|
},
|
|
{
|
|
{
|
|
ELEMTYPE_UNK2,
|
|
{ 0xFFCFFFFF, 0x00, 0x40 },
|
|
{ 0xFFDFFFFF, 0x00, 0x00 },
|
|
TOUCH_ON | TOUCH_SFX_NORMAL,
|
|
BUMP_ON,
|
|
OCELEM_ON,
|
|
},
|
|
{ 16, { { 0, 0, 0 }, 45 }, 100 },
|
|
},
|
|
};
|
|
|
|
static ColliderJntSphInit sJntSphInit2 = {
|
|
{
|
|
COLTYPE_METAL,
|
|
AT_ON | AT_TYPE_ENEMY,
|
|
AC_ON | AC_TYPE_PLAYER,
|
|
OC1_ON | OC1_TYPE_PLAYER,
|
|
OC2_TYPE_1,
|
|
COLSHAPE_JNTSPH,
|
|
},
|
|
ARRAY_COUNT(sJntSphItemsInit2),
|
|
sJntSphItemsInit2,
|
|
};
|
|
|
|
static Vec3f D_8090702C[] = {
|
|
{ 10.0f, -10.0f, 0.0f },
|
|
{ 0.0f, 0.0f, -60.0f },
|
|
{ 70.0f, -30.0f, 10.0f },
|
|
};
|
|
|
|
static Vec3f D_80907050[] = {
|
|
{ -20.0f, 0.0f, 0.0f },
|
|
{ -15.0f, 0.0f, 10.0f },
|
|
{ -16.0f, -12.0f, 40.0f },
|
|
};
|
|
|
|
static s16 D_80907074[] = { 0, 1, 2, 2, 1, 0 };
|
|
|
|
static s16 D_80907080 = 0;
|
|
|
|
static u8 D_80907084[] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
|
|
|
|
static u8 D_80907090[] = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 };
|
|
|
|
static s8 D_8090709C[] = {
|
|
0xFF, 0xFF, 0x01, 0xFF, 0x03, 0x04, 0xFF, 0xFF, 0x05, 0xFF, 0x06, 0x07, 0xFF, 0xFF, 0x08, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0x00, 0xFF, 0xFF, 0x02, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x00,
|
|
};
|
|
|
|
static s8 D_809070CC[] = {
|
|
0xFF, 0xFF, 0x01, 0xFF, 0x03, 0x04, 0xFF, 0xFF, 0x05, 0xFF, 0x06, 0x07, 0xFF, 0xFF, 0x08, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0x00, 0xFF, 0xFF, 0x02, 0x0C, 0x0D, 0x0E, 0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
|
|
};
|
|
|
|
static Vec3f D_809070FC = { 0.0f, 0.0f, 5000.0f };
|
|
|
|
static Vec3f D_80907108 = { 0.0f, 2000.0f, 0.0f };
|
|
|
|
static Vec3f D_80907114 = { 0.0f, 2000.0f, 0.0f };
|
|
|
|
static Vec3f D_80907120 = { 0.0f, 0.0f, 17000.0f };
|
|
|
|
static Vec3f D_8090712C = { 0.0f, 0.0f, 3000.0f };
|
|
|
|
static Vec3f D_80907138 = { 0.0f, 0.0f, 0.0f };
|
|
|
|
static s8 D_80907144[] = {
|
|
0xFF, 0xFF, 0x01, 0xFF, 0x03, 0x04, 0x05, 0xFF, 0x06, 0x07, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0x02, 0x0C, 0x0D, 0x0E, 0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
|
};
|
|
|
|
static Vec3f D_80907164 = { 800.0f, 420.0f, 100.0f };
|
|
|
|
static void* sEyeTextures[] = {
|
|
gGanonEyeOpenTex,
|
|
gGanonEyeHalfTex,
|
|
gGanonEyeClosedTex,
|
|
};
|
|
|
|
static Vec3f D_8090717C = { 0.0f, -2000.0f, 0.0f };
|
|
|
|
static s16 D_80907188[] = { 1, 2, 3, 3, 2, 1 };
|
|
|
|
static s16 D_80907194[] = { 2, 3, 4, 4, 4, 3, 2 };
|
|
|
|
static s16 D_809071A4[] = { 2, 3, 4, 4, 4, 4, 3, 2 };
|
|
|
|
static s16 D_809071B4[] = { 2, 4, 5, 5, 6, 6, 6, 6, 5, 5, 4, 2 };
|
|
|
|
static s16 D_809071CC[] = { 1, -1, 1, 1, 3, 4, 1, 6, 7, 2, 9, 10, 2, 12, 13 };
|
|
|
|
static u8 D_809071EC[] = { 3, 2, 2, 1, 3, 3, 1, 3, 3, 1, 0, 3, 1, 0, 3 };
|
|
|
|
#include "overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.h"
|
|
|
|
// padding
|
|
//static u32 D_809071FC[2] = { 0 };
|