Merge branch 'main' into doc_pause_menu

This commit is contained in:
Dragorn421 2025-06-28 08:40:16 +02:00
commit 36dc06fd6e
No known key found for this signature in database
GPG Key ID: 05949E029F4EF294
94 changed files with 613 additions and 215 deletions

View File

@ -0,0 +1,52 @@
#include "object_tp.h"
#include "gfx.h"
Gfx gTailpasaranTailSegmentDL[14] = {
#include "assets/objects/object_tp/gTailpasaranTailSegmentDL.inc.c"
};
Vtx gTailpasaranTailSegmentVtx[] = {
#include "assets/objects/object_tp/gTailpasaranTailSegmentVtx.inc.c"
};
Vtx gTailpasaranHeadClawVtx[] = {
#include "assets/objects/object_tp/gTailpasaranHeadClawVtx.inc.c"
};
Vtx gTailpasaranHeadMouthpartsVtx[] = {
#include "assets/objects/object_tp/gTailpasaranHeadMouthpartsVtx.inc.c"
};
Gfx gTailpasaranHeadClawDL[54] = {
#include "assets/objects/object_tp/gTailpasaranHeadClawDL.inc.c"
};
Gfx gTailpasaranHeadMouthpartsDL[18] = {
#include "assets/objects/object_tp/gTailpasaranHeadMouthpartsDL.inc.c"
};
Gfx gTailpasaranHeadDL[3] = {
#include "assets/objects/object_tp/gTailpasaranHeadDL.inc.c"
};
u64 gTailpasaranHeadRearTex[TEX_LEN(u64, gTailpasaranHeadRearTex_WIDTH, gTailpasaranHeadRearTex_HEIGHT, 16)] = {
#include "assets/objects/object_tp/gTailpasaranHeadRearTex.rgba16.inc.c"
};
u64 gTailpasaranHeadClawBaseTex[TEX_LEN(u64, gTailpasaranHeadClawBaseTex_WIDTH, gTailpasaranHeadClawBaseTex_HEIGHT,
16)] = {
#include "assets/objects/object_tp/gTailpasaranHeadClawBaseTex.rgba16.inc.c"
};
u64 gTailpasaranHeadClawTex[TEX_LEN(u64, gTailpasaranHeadClawTex_WIDTH, gTailpasaranHeadClawTex_HEIGHT, 16)] = {
#include "assets/objects/object_tp/gTailpasaranHeadClawTex.rgba16.inc.c"
};
u64 gTailpasaranTailSegmentTex[TEX_LEN(u64, gTailpasaranTailSegmentTex_WIDTH, gTailpasaranTailSegmentTex_HEIGHT, 8)] = {
#include "assets/objects/object_tp/gTailpasaranTailSegmentTex.ia8.inc.c"
};
u64 gTailpasaranHeadMouthpartsTex[TEX_LEN(u64, gTailpasaranHeadMouthpartsTex_WIDTH,
gTailpasaranHeadMouthpartsTex_HEIGHT, 16)] = {
#include "assets/objects/object_tp/gTailpasaranHeadMouthpartsTex.rgba16.inc.c"
};

View File

@ -0,0 +1,34 @@
#ifndef OBJECT_TP_H
#define OBJECT_TP_H
#include "ultra64.h"
#include "tex_len.h"
extern Gfx gTailpasaranTailSegmentDL[14];
extern Vtx gTailpasaranTailSegmentVtx[];
extern Gfx gTailpasaranHeadClawDL[54];
extern Gfx gTailpasaranHeadMouthpartsDL[18];
extern Gfx gTailpasaranHeadDL[3];
#define gTailpasaranHeadRearTex_WIDTH 8
#define gTailpasaranHeadRearTex_HEIGHT 16
extern u64 gTailpasaranHeadRearTex[TEX_LEN(u64, gTailpasaranHeadRearTex_WIDTH, gTailpasaranHeadRearTex_HEIGHT, 16)];
#define gTailpasaranHeadClawBaseTex_WIDTH 8
#define gTailpasaranHeadClawBaseTex_HEIGHT 8
extern u64 gTailpasaranHeadClawBaseTex[TEX_LEN(u64, gTailpasaranHeadClawBaseTex_WIDTH, gTailpasaranHeadClawBaseTex_HEIGHT, 16)];
#define gTailpasaranHeadClawTex_WIDTH 16
#define gTailpasaranHeadClawTex_HEIGHT 16
extern u64 gTailpasaranHeadClawTex[TEX_LEN(u64, gTailpasaranHeadClawTex_WIDTH, gTailpasaranHeadClawTex_HEIGHT, 16)];
#define gTailpasaranTailSegmentTex_WIDTH 64
#define gTailpasaranTailSegmentTex_HEIGHT 64
extern u64 gTailpasaranTailSegmentTex[TEX_LEN(u64, gTailpasaranTailSegmentTex_WIDTH, gTailpasaranTailSegmentTex_HEIGHT, 8)];
#define gTailpasaranHeadMouthpartsTex_WIDTH 8
#define gTailpasaranHeadMouthpartsTex_HEIGHT 8
extern u64 gTailpasaranHeadMouthpartsTex[TEX_LEN(u64, gTailpasaranHeadMouthpartsTex_WIDTH, gTailpasaranHeadMouthpartsTex_HEIGHT, 16)];
#endif

View File

@ -0,0 +1,30 @@
#include "object_triforce_spot.h"
#include "gfx.h"
Vtx gTriforceVtx[] = {
#include "assets/objects/object_triforce_spot/gTriforceVtx.inc.c"
};
Vtx gTriforceLightColumnVtx[] = {
#include "assets/objects/object_triforce_spot/gTriforceLightColumnVtx.inc.c"
};
Gfx gTriforceDL[72] = {
#include "assets/objects/object_triforce_spot/gTriforceDL.inc.c"
};
Gfx gTriforceLightColumnDL[26] = {
#include "assets/objects/object_triforce_spot/gTriforceLightColumnDL.inc.c"
};
u64 gTriforceTex[TEX_LEN(u64, gTriforceTex_WIDTH, gTriforceTex_HEIGHT, 8)] = {
#include "assets/objects/object_triforce_spot/gTriforceTex.i8.inc.c"
};
u64 gTriforceColumnSide1Tex[TEX_LEN(u64, gTriforceColumnSide1Tex_WIDTH, gTriforceColumnSide1Tex_HEIGHT, 8)] = {
#include "assets/objects/object_triforce_spot/gTriforceColumnSide1Tex.i8.inc.c"
};
u64 gTriforceColumnSide2Tex[TEX_LEN(u64, gTriforceColumnSide2Tex_WIDTH, gTriforceColumnSide2Tex_HEIGHT, 8)] = {
#include "assets/objects/object_triforce_spot/gTriforceColumnSide2Tex.i8.inc.c"
};

View File

@ -0,0 +1,24 @@
#ifndef OBJECT_TRIFORCE_SPOT_H
#define OBJECT_TRIFORCE_SPOT_H
#include "ultra64.h"
#include "tex_len.h"
extern Vtx gTriforceVtx[];
extern Gfx gTriforceDL[72];
extern Gfx gTriforceLightColumnDL[26];
#define gTriforceTex_WIDTH 64
#define gTriforceTex_HEIGHT 64
extern u64 gTriforceTex[TEX_LEN(u64, gTriforceTex_WIDTH, gTriforceTex_HEIGHT, 8)];
#define gTriforceColumnSide1Tex_WIDTH 64
#define gTriforceColumnSide1Tex_HEIGHT 32
extern u64 gTriforceColumnSide1Tex[TEX_LEN(u64, gTriforceColumnSide1Tex_WIDTH, gTriforceColumnSide1Tex_HEIGHT, 8)];
#define gTriforceColumnSide2Tex_WIDTH 64
#define gTriforceColumnSide2Tex_HEIGHT 32
extern u64 gTriforceColumnSide2Tex[TEX_LEN(u64, gTriforceColumnSide2Tex_WIDTH, gTriforceColumnSide2Tex_HEIGHT, 8)];
#endif

View File

@ -0,0 +1,24 @@
#include "object_umajump.h"
#include "array_count.h"
#include "camera.h"
#include "z_math.h"
BgCamInfo gJumpableHorseFenceBgCamList[] = {
#include "assets/objects/object_umajump/gJumpableHorseFenceBgCamList.inc.c"
};
SurfaceType gJumpableHorseFenceSurfaceTypes[] = {
#include "assets/objects/object_umajump/gJumpableHorseFenceSurfaceTypes.inc.c"
};
CollisionPoly gJumpableHorseFencePolyList[] = {
#include "assets/objects/object_umajump/gJumpableHorseFencePolyList.inc.c"
};
Vec3s gJumpableHorseFenceVtxList[] = {
#include "assets/objects/object_umajump/gJumpableHorseFenceVtxList.inc.c"
};
CollisionHeader gJumpableHorseFenceCol = {
#include "assets/objects/object_umajump/gJumpableHorseFenceCol.inc.c"
};

View File

@ -0,0 +1,25 @@
#include "object_umajump.h"
#include "gfx.h"
#include "tex_len.h"
#define gJumpableHorseFenceBrickTex_WIDTH 16
#define gJumpableHorseFenceBrickTex_HEIGHT 64
u64 gJumpableHorseFenceBrickTex[TEX_LEN(u64, gJumpableHorseFenceBrickTex_WIDTH, gJumpableHorseFenceBrickTex_HEIGHT,
16)] = {
#include "assets/objects/object_umajump/gJumpableHorseFenceBrickTex.rgba16.inc.c"
};
#define gJumpableHorseFenceMetalBarTex_WIDTH 16
#define gJumpableHorseFenceMetalBarTex_HEIGHT 64
u64 gJumpableHorseFenceMetalBarTex[TEX_LEN(u64, gJumpableHorseFenceMetalBarTex_WIDTH,
gJumpableHorseFenceMetalBarTex_HEIGHT, 16)] = {
#include "assets/objects/object_umajump/gJumpableHorseFenceMetalBarTex.rgba16.inc.c"
};
Vtx gJumpableHorseFenceVtx[] = {
#include "assets/objects/object_umajump/gJumpableHorseFenceVtx.inc.c"
};
Gfx gJumpableHorseFenceDL[37] = {
#include "assets/objects/object_umajump/gJumpableHorseFenceDL.inc.c"
};

View File

@ -0,0 +1,10 @@
#ifndef OBJECT_UMAJUMP_H
#define OBJECT_UMAJUMP_H
#include "ultra64.h"
#include "bgcheck.h"
extern Gfx gJumpableHorseFenceDL[37];
extern CollisionHeader gJumpableHorseFenceCol;
#endif

View File

@ -0,0 +1,18 @@
#include "object_vase.h"
#include "gfx.h"
Gfx gUnusedVaseDL[52] = {
#include "assets/objects/object_vase/gUnusedVaseDL.inc.c"
};
Vtx gUnusedVaseVtx[] = {
#include "assets/objects/object_vase/gUnusedVaseVtx.inc.c"
};
u64 gUnusedVaseBodyTex[TEX_LEN(u64, gUnusedVaseBodyTex_WIDTH, gUnusedVaseBodyTex_HEIGHT, 16)] = {
#include "assets/objects/object_vase/gUnusedVaseBodyTex.rgba16.inc.c"
};
u64 gUnusedVaseTopTex[TEX_LEN(u64, gUnusedVaseTopTex_WIDTH, gUnusedVaseTopTex_HEIGHT, 16)] = {
#include "assets/objects/object_vase/gUnusedVaseTopTex.rgba16.inc.c"
};

View File

@ -0,0 +1,19 @@
#ifndef OBJECT_VASE_H
#define OBJECT_VASE_H
#include "ultra64.h"
#include "tex_len.h"
extern Gfx gUnusedVaseDL[52];
extern Vtx gUnusedVaseVtx[];
#define gUnusedVaseBodyTex_WIDTH 32
#define gUnusedVaseBodyTex_HEIGHT 32
extern u64 gUnusedVaseBodyTex[TEX_LEN(u64, gUnusedVaseBodyTex_WIDTH, gUnusedVaseBodyTex_HEIGHT, 16)];
#define gUnusedVaseTopTex_WIDTH 32
#define gUnusedVaseTopTex_HEIGHT 32
extern u64 gUnusedVaseTopTex[TEX_LEN(u64, gUnusedVaseTopTex_WIDTH, gUnusedVaseTopTex_HEIGHT, 16)];
#endif

View File

@ -0,0 +1,14 @@
#include "object_yukabyun.h"
#include "gfx.h"
u64 gFloorTileEnemyBottomTex[TEX_LEN(u64, gFloorTileEnemyBottomTex_WIDTH, gFloorTileEnemyBottomTex_HEIGHT, 16)] = {
#include "assets/objects/object_yukabyun/gFloorTileEnemyBottomTex.rgba16.inc.c"
};
Vtx gFloorTileEnemyVtx[] = {
#include "assets/objects/object_yukabyun/gFloorTileEnemyVtx.inc.c"
};
Gfx gFloorTileEnemyDL[23] = {
#include "assets/objects/object_yukabyun/gFloorTileEnemyDL.inc.c"
};

View File

@ -0,0 +1,19 @@
#include "object_yukabyun.h"
#include "gfx.h"
Vtx gFloorTileEnemyFragmentVtx[] = {
#include "assets/objects/object_yukabyun/gFloorTileEnemyFragmentVtx.inc.c"
};
Gfx gFloorTileEnemyFragmentDL[18] = {
#include "assets/objects/object_yukabyun/gFloorTileEnemyFragmentDL.inc.c"
};
u64 gFloorTileEnemyTopTex[TEX_LEN(u64, gFloorTileEnemyTopTex_WIDTH, gFloorTileEnemyTopTex_HEIGHT, 16)] = {
#include "assets/objects/object_yukabyun/gFloorTileEnemyTopTex.rgba16.inc.c"
};
u64 gFloorTileEnemyFragmentTex[TEX_LEN(u64, gFloorTileEnemyFragmentTex_WIDTH, gFloorTileEnemyFragmentTex_HEIGHT,
16)] = {
#include "assets/objects/object_yukabyun/gFloorTileEnemyFragmentTex.rgba16.inc.c"
};

View File

@ -0,0 +1,23 @@
#ifndef OBJECT_YUKABYUN_H
#define OBJECT_YUKABYUN_H
#include "ultra64.h"
#include "tex_len.h"
#define gFloorTileEnemyBottomTex_WIDTH 32
#define gFloorTileEnemyBottomTex_HEIGHT 32
extern u64 gFloorTileEnemyBottomTex[TEX_LEN(u64, gFloorTileEnemyBottomTex_WIDTH, gFloorTileEnemyBottomTex_HEIGHT, 16)];
extern Gfx gFloorTileEnemyDL[23];
extern Gfx gFloorTileEnemyFragmentDL[18];
#define gFloorTileEnemyTopTex_WIDTH 32
#define gFloorTileEnemyTopTex_HEIGHT 32
extern u64 gFloorTileEnemyTopTex[TEX_LEN(u64, gFloorTileEnemyTopTex_WIDTH, gFloorTileEnemyTopTex_HEIGHT, 16)];
#define gFloorTileEnemyFragmentTex_WIDTH 16
#define gFloorTileEnemyFragmentTex_HEIGHT 16
extern u64 gFloorTileEnemyFragmentTex[TEX_LEN(u64, gFloorTileEnemyFragmentTex_WIDTH, gFloorTileEnemyFragmentTex_HEIGHT, 16)];
#endif

View File

@ -0,0 +1,24 @@
#include "object_zg.h"
#include "array_count.h"
#include "camera.h"
#include "z_math.h"
BgCamInfo gTowerCollapseBarsBgCamList[] = {
#include "assets/objects/object_zg/gTowerCollapseBarsBgCamList.inc.c"
};
SurfaceType gTowerCollapseBarsSurfaceTypes[] = {
#include "assets/objects/object_zg/gTowerCollapseBarsSurfaceTypes.inc.c"
};
CollisionPoly gTowerCollapseBarsPolyList[] = {
#include "assets/objects/object_zg/gTowerCollapseBarsPolyList.inc.c"
};
Vec3s gTowerCollapseBarsVtxList[] = {
#include "assets/objects/object_zg/gTowerCollapseBarsVtxList.inc.c"
};
CollisionHeader gTowerCollapseBarsCol = {
#include "assets/objects/object_zg/gTowerCollapseBarsCol.inc.c"
};

View File

@ -0,0 +1,23 @@
#include "object_zg.h"
#include "gfx.h"
#include "tex_len.h"
#define gTowerCollapseBarMetalTex_WIDTH 32
#define gTowerCollapseBarMetalTex_HEIGHT 32
u64 gTowerCollapseBarMetalTex[TEX_LEN(u64, gTowerCollapseBarMetalTex_WIDTH, gTowerCollapseBarMetalTex_HEIGHT, 16)] = {
#include "assets/objects/object_zg/gTowerCollapseBarMetalTex.rgba16.inc.c"
};
#define gTowerCollapseBarFlameTex_WIDTH 32
#define gTowerCollapseBarFlameTex_HEIGHT 32
u64 gTowerCollapseBarFlameTex[TEX_LEN(u64, gTowerCollapseBarFlameTex_WIDTH, gTowerCollapseBarFlameTex_HEIGHT, 16)] = {
#include "assets/objects/object_zg/gTowerCollapseBarFlameTex.rgba16.inc.c"
};
Vtx gTowerCollapseBarsVtx[] = {
#include "assets/objects/object_zg/gTowerCollapseBarsVtx.inc.c"
};
Gfx gTowerCollapseBarsDL[28] = {
#include "assets/objects/object_zg/gTowerCollapseBarsDL.inc.c"
};

View File

@ -0,0 +1,11 @@
#ifndef OBJECT_ZG_H
#define OBJECT_ZG_H
#include "ultra64.h"
#include "bgcheck.h"
extern Gfx gTowerCollapseBarsDL[28];
extern CollisionHeader gTowerCollapseBarsCol;
#endif

View File

@ -1,6 +1,7 @@
services: services:
oot: oot:
build: build:
context: .
dockerfile: Dockerfile dockerfile: Dockerfile
volumes: volumes:
- ./:/oot - ./:/oot

View File

@ -4,6 +4,8 @@
To use Docker, you'll need either Docker Desktop or Docker Toolbox installed and setup based on your system. To use Docker, you'll need either Docker Desktop or Docker Toolbox installed and setup based on your system.
On Ubuntu, Docker and required tools can be installed with: `sudo apt install docker.io docker-compose docker-buildx`
You'll also need to prepare a local version of the project with a copied base ROM (see steps [2](../README.md#2-clone-the-repository) and [3](../README.md#3-prepare-a-base-rom) of the Linux instructions). You'll also need to prepare a local version of the project with a copied base ROM (see steps [2](../README.md#2-clone-the-repository) and [3](../README.md#3-prepare-a-base-rom) of the Linux instructions).
## 2. Create and start the Docker image build ## 2. Create and start the Docker image build

View File

@ -334,7 +334,7 @@ typedef enum CameraDataType {
/* 0x13 */ CAM_DATA_AT_OFFSET_X, /* 0x13 */ CAM_DATA_AT_OFFSET_X,
/* 0x14 */ CAM_DATA_AT_OFFSET_Y, /* 0x14 */ CAM_DATA_AT_OFFSET_Y,
/* 0x15 */ CAM_DATA_AT_OFFSET_Z, /* 0x15 */ CAM_DATA_AT_OFFSET_Z,
/* 0x16 */ CAM_DATA_UNK_22, /* 0x16 */ CAM_DATA_INIT_TIMER,
/* 0x17 */ CAM_DATA_UNK_23, /* 0x17 */ CAM_DATA_UNK_23,
/* 0x18 */ CAM_DATA_FOV_SCALE, /* 0x18 */ CAM_DATA_FOV_SCALE,
/* 0x19 */ CAM_DATA_YAW_SCALE, /* 0x19 */ CAM_DATA_YAW_SCALE,
@ -846,15 +846,15 @@ typedef struct KeepOn3 {
{ interfaceField, CAM_DATA_INTERFACE_FIELD } { interfaceField, CAM_DATA_INTERFACE_FIELD }
typedef struct KeepOn4ReadOnlyData { typedef struct KeepOn4ReadOnlyData {
/* 0x00 */ f32 unk_00; /* 0x00 */ f32 yOffset;
/* 0x04 */ f32 unk_04; /* 0x04 */ f32 eyeDist;
/* 0x08 */ f32 unk_08; /* 0x08 */ f32 pitchTarget; // degrees
/* 0x0C */ f32 unk_0C; /* 0x0C */ f32 yawTarget; // degrees
/* 0x10 */ f32 unk_10; /* 0x10 */ f32 atOffsetPlayerForwards; // distance to offset `at` by, in the player's forwards direction
/* 0x14 */ f32 unk_14; /* 0x14 */ f32 unk_14; // scale for stepping yaw and pitch of "at to eye" to target
/* 0x18 */ f32 unk_18; /* 0x18 */ f32 fovTarget;
/* 0x1C */ s16 interfaceField; /* 0x1C */ s16 interfaceField;
/* 0x1E */ s16 unk_1E; /* 0x1E */ s16 initTimer;
} KeepOn4ReadOnlyData; // size = 0x20 } KeepOn4ReadOnlyData; // size = 0x20
typedef enum CameraItemType { typedef enum CameraItemType {
@ -874,14 +874,14 @@ typedef enum CameraItemType {
} CameraItemType; } CameraItemType;
typedef struct KeepOn4ReadWriteData { typedef struct KeepOn4ReadWriteData {
/* 0x00 */ f32 unk_00; /* 0x00 */ f32 atToEyeTargetStepYaw; // binang
/* 0x04 */ f32 unk_04; /* 0x04 */ f32 atToEyeTargetStepPitch; // binang
/* 0x08 */ f32 unk_08; /* 0x08 */ f32 unk_08; // set but unused
/* 0x0C */ s16 unk_0C; /* 0x0C */ s16 atToEyeTargetYaw;
/* 0x0E */ s16 unk_0E; /* 0x0E */ s16 atToEyeTargetPitch;
/* 0x10 */ s16 unk_10; /* 0x10 */ s16 animTimer;
/* 0x12 */ s16 unk_12; /* 0x12 */ s16 unk_12; // set but unused
/* 0x14 */ s16 unk_14; /* 0x14 */ s16 itemType;
} KeepOn4ReadWriteData; // size = 0x18 } KeepOn4ReadWriteData; // size = 0x18
typedef struct KeepOn4 { typedef struct KeepOn4 {
@ -898,16 +898,16 @@ typedef struct KeepOn4 {
#define KEEPON4_FLAG_6 (1 << 6) #define KEEPON4_FLAG_6 (1 << 6)
#define KEEPON4_FLAG_7 (1 << 7) #define KEEPON4_FLAG_7 (1 << 7)
#define CAM_FUNCDATA_KEEP4(yOffset, eyeDist, pitchTarget, yawTarget, atOffsetZ, fov, interfaceField, yawUpdateRateTarget, unk_22) \ #define CAM_FUNCDATA_KEEP4(yOffset, eyeDist, pitchTarget, yawTarget, atOffsetPlayerForwards, fov, interfaceField, unk_14, initTimer) \
{ yOffset, CAM_DATA_Y_OFFSET }, \ { yOffset, CAM_DATA_Y_OFFSET }, \
{ eyeDist, CAM_DATA_EYE_DIST }, \ { eyeDist, CAM_DATA_EYE_DIST }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \ { pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ yawTarget, CAM_DATA_YAW_TARGET }, \ { yawTarget, CAM_DATA_YAW_TARGET }, \
{ atOffsetZ, CAM_DATA_AT_OFFSET_Z }, \ { atOffsetPlayerForwards, CAM_DATA_AT_OFFSET_Z }, \
{ fov, CAM_DATA_FOV }, \ { fov, CAM_DATA_FOV }, \
{ interfaceField, CAM_DATA_INTERFACE_FIELD }, \ { interfaceField, CAM_DATA_INTERFACE_FIELD }, \
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \ { unk_14, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
{ unk_22, CAM_DATA_UNK_22 } { initTimer, CAM_DATA_INIT_TIMER }
typedef struct KeepOn0ReadOnlyData { typedef struct KeepOn0ReadOnlyData {
/* 0x00 */ f32 fovScale; /* 0x00 */ f32 fovScale;
@ -1463,7 +1463,7 @@ typedef struct Special5 {
{ yOffset, CAM_DATA_Y_OFFSET }, \ { yOffset, CAM_DATA_Y_OFFSET }, \
{ eyeDist, CAM_DATA_EYE_DIST }, \ { eyeDist, CAM_DATA_EYE_DIST }, \
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \ { eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
{ unk_22, CAM_DATA_UNK_22 }, \ { unk_22, CAM_DATA_INIT_TIMER }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \ { pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ fov, CAM_DATA_FOV }, \ { fov, CAM_DATA_FOV }, \
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \ { atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
@ -1477,7 +1477,7 @@ typedef struct Special5 {
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \ { pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ fov, CAM_DATA_FOV }, \ { fov, CAM_DATA_FOV }, \
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \ { atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
{ unk_22, CAM_DATA_UNK_22 }, \ { unk_22, CAM_DATA_INIT_TIMER }, \
{ interfaceField, CAM_DATA_INTERFACE_FIELD } { interfaceField, CAM_DATA_INTERFACE_FIELD }
typedef struct Special7ReadWriteData { typedef struct Special7ReadWriteData {

View File

@ -647,16 +647,16 @@ typedef enum PlayerKnockbackType {
/* 0 */ PLAYER_KNOCKBACK_NONE, // No knockback /* 0 */ PLAYER_KNOCKBACK_NONE, // No knockback
/* 1 */ PLAYER_KNOCKBACK_SMALL, // A small hop, remains standing up /* 1 */ PLAYER_KNOCKBACK_SMALL, // A small hop, remains standing up
/* 2 */ PLAYER_KNOCKBACK_LARGE, // Sent flying in the air and lands laying down on the floor /* 2 */ PLAYER_KNOCKBACK_LARGE, // Sent flying in the air and lands laying down on the floor
/* 3 */ PLAYER_KNOCKBACK_LARGE_SHOCK // Same as`PLAYER_KNOCKBACK_LARGE` with a shock effect /* 3 */ PLAYER_KNOCKBACK_LARGE_ELECTRIFIED // Same as`PLAYER_KNOCKBACK_LARGE` with a shock effect
} PlayerKnockbackType; } PlayerKnockbackType;
typedef enum PlayerDamageResponseType { typedef enum PlayerHitResponseType {
/* 0 */ PLAYER_HIT_RESPONSE_NONE, /* 0 */ PLAYER_HIT_RESPONSE_NONE,
/* 1 */ PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE, /* 1 */ PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE,
/* 2 */ PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL, /* 2 */ PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL,
/* 3 */ PLAYER_HIT_RESPONSE_ICE_TRAP, /* 3 */ PLAYER_HIT_RESPONSE_FROZEN,
/* 4 */ PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK /* 4 */ PLAYER_HIT_RESPONSE_ELECTRIFIED
} PlayerDamageResponseType; } PlayerHitResponseType;
typedef struct PlayerAgeProperties { typedef struct PlayerAgeProperties {
/* 0x00 */ f32 ceilingCheckHeight; /* 0x00 */ f32 ceilingCheckHeight;

View File

@ -1707,7 +1707,8 @@ beginseg
name "object_yukabyun" name "object_yukabyun"
compress compress
romalign 0x1000 romalign 0x1000
include "$(BUILD_DIR)/assets/objects/object_yukabyun/object_yukabyun.o" include "$(BUILD_DIR)/assets/objects/object_yukabyun/gFloorTileEnemyDL.o"
include "$(BUILD_DIR)/assets/objects/object_yukabyun/gFloorTileEnemyFragmentDL.o"
number 6 number 6
endseg endseg
@ -1923,7 +1924,7 @@ beginseg
name "object_vase" name "object_vase"
compress compress
romalign 0x1000 romalign 0x1000
include "$(BUILD_DIR)/assets/objects/object_vase/object_vase.o" include "$(BUILD_DIR)/assets/objects/object_vase/gUnusedVaseDL.o"
number 6 number 6
endseg endseg
@ -2883,7 +2884,8 @@ beginseg
name "object_umajump" name "object_umajump"
compress compress
romalign 0x1000 romalign 0x1000
include "$(BUILD_DIR)/assets/objects/object_umajump/object_umajump.o" include "$(BUILD_DIR)/assets/objects/object_umajump/gJumpableHorseFenceDL.o"
include "$(BUILD_DIR)/assets/objects/object_umajump/gJumpableHorseFenceCol.o"
number 6 number 6
endseg endseg
@ -3555,7 +3557,8 @@ beginseg
name "object_zg" name "object_zg"
compress compress
romalign 0x1000 romalign 0x1000
include "$(BUILD_DIR)/assets/objects/object_zg/object_zg.o" include "$(BUILD_DIR)/assets/objects/object_zg/gTowerCollapseBarsDL.o"
include "$(BUILD_DIR)/assets/objects/object_zg/gTowerCollapseBarsCol.o"
number 6 number 6
endseg endseg

View File

@ -3698,12 +3698,12 @@ s32 Camera_KeepOn4(Camera* camera) {
camera->play->view.unk_124 = camera->camId | 0x50; camera->play->view.unk_124 = camera->camId | 0x50;
return 1; return 1;
} }
rwData->unk_14 = *itemType; rwData->itemType = *itemType;
camera->stateFlags &= ~CAM_STATE_LOCK_MODE; camera->stateFlags &= ~CAM_STATE_LOCK_MODE;
} }
if (rwData->unk_14 != *itemType) { if (rwData->itemType != *itemType) {
PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->unk_14, *itemType); PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->itemType, *itemType);
camera->animState = 20; camera->animState = 20;
camera->stateFlags |= CAM_STATE_LOCK_MODE; camera->stateFlags |= CAM_STATE_LOCK_MODE;
camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG); camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG);
@ -3717,115 +3717,115 @@ s32 Camera_KeepOn4(Camera* camera) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values; CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
f32 yNormal = 1.0f + t - (68.0f / playerHeight * t); f32 yNormal = 1.0f + t - (68.0f / playerHeight * t);
roData->unk_00 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal; roData->yOffset = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
roData->unk_04 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal; roData->eyeDist = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
roData->unk_08 = GET_NEXT_RO_DATA(values); roData->pitchTarget = GET_NEXT_RO_DATA(values);
roData->unk_0C = GET_NEXT_RO_DATA(values); roData->yawTarget = GET_NEXT_RO_DATA(values);
roData->unk_10 = GET_NEXT_RO_DATA(values); roData->atOffsetPlayerForwards = GET_NEXT_RO_DATA(values);
roData->unk_18 = GET_NEXT_RO_DATA(values); roData->fovTarget = GET_NEXT_RO_DATA(values);
roData->interfaceField = GET_NEXT_RO_DATA(values); roData->interfaceField = GET_NEXT_RO_DATA(values);
roData->unk_14 = GET_NEXT_SCALED_RO_DATA(values); roData->unk_14 = GET_NEXT_SCALED_RO_DATA(values);
roData->unk_1E = GET_NEXT_RO_DATA(values); roData->initTimer = GET_NEXT_RO_DATA(values);
PRINTF("camera: item: type %d\n", *itemType); PRINTF("camera: item: type %d\n", *itemType);
switch (*itemType) { switch (*itemType) {
case CAM_ITEM_TYPE_1: case CAM_ITEM_TYPE_1:
roData->unk_00 = playerHeight * -0.6f * yNormal; roData->yOffset = playerHeight * -0.6f * yNormal;
roData->unk_04 = playerHeight * 2.0f * yNormal; roData->eyeDist = playerHeight * 2.0f * yNormal;
roData->unk_08 = 10.0f; roData->pitchTarget = 10.0f;
break; break;
case CAM_ITEM_TYPE_2: case CAM_ITEM_TYPE_2:
case CAM_ITEM_TYPE_3: case CAM_ITEM_TYPE_3:
roData->unk_08 = -20.0f; roData->pitchTarget = -20.0f;
roData->unk_18 = 80.0f; roData->fovTarget = 80.0f;
break; break;
case CAM_ITEM_TYPE_4: case CAM_ITEM_TYPE_4:
roData->unk_00 = playerHeight * -0.2f * yNormal; roData->yOffset = playerHeight * -0.2f * yNormal;
roData->unk_08 = 25.0f; roData->pitchTarget = 25.0f;
break; break;
case CAM_ITEM_TYPE_8: case CAM_ITEM_TYPE_8:
roData->unk_00 = playerHeight * -0.2f * yNormal; roData->yOffset = playerHeight * -0.2f * yNormal;
roData->unk_04 = playerHeight * 0.8f * yNormal; roData->eyeDist = playerHeight * 0.8f * yNormal;
roData->unk_08 = 50.0f; roData->pitchTarget = 50.0f;
roData->unk_18 = 70.0f; roData->fovTarget = 70.0f;
break; break;
case CAM_ITEM_TYPE_9: case CAM_ITEM_TYPE_9:
roData->unk_00 = playerHeight * 0.1f * yNormal; roData->yOffset = playerHeight * 0.1f * yNormal;
roData->unk_04 = playerHeight * 0.5f * yNormal; roData->eyeDist = playerHeight * 0.5f * yNormal;
roData->unk_08 = -20.0f; roData->pitchTarget = -20.0f;
roData->unk_0C = 0.0f; roData->yawTarget = 0.0f;
roData->interfaceField = roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_6); CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_6);
break; break;
case CAM_ITEM_TYPE_5: case CAM_ITEM_TYPE_5:
roData->unk_00 = playerHeight * -0.4f * yNormal; roData->yOffset = playerHeight * -0.4f * yNormal;
roData->unk_08 = -10.0f; roData->pitchTarget = -10.0f;
roData->unk_0C = 45.0f; roData->yawTarget = 45.0f;
roData->interfaceField = roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON4_FLAG_1); CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON4_FLAG_1);
break; break;
case CAM_ITEM_TYPE_10: case CAM_ITEM_TYPE_10:
roData->unk_00 = playerHeight * -0.5f * yNormal; roData->yOffset = playerHeight * -0.5f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal; roData->eyeDist = playerHeight * 1.5f * yNormal;
roData->unk_08 = -15.0f; roData->pitchTarget = -15.0f;
roData->unk_0C = 175.0f; roData->yawTarget = 175.0f;
roData->unk_18 = 70.0f; roData->fovTarget = 70.0f;
roData->interfaceField = roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_1); CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_1);
roData->unk_1E = 0x3C; roData->initTimer = 0x3C;
break; break;
case CAM_ITEM_TYPE_12: case CAM_ITEM_TYPE_12:
roData->unk_00 = playerHeight * -0.6f * yNormal; roData->yOffset = playerHeight * -0.6f * yNormal;
roData->unk_04 = playerHeight * 1.6f * yNormal; roData->eyeDist = playerHeight * 1.6f * yNormal;
roData->unk_08 = -2.0f; roData->pitchTarget = -2.0f;
roData->unk_0C = 120.0f; roData->yawTarget = 120.0f;
roData->unk_10 = player->stateFlags1 & PLAYER_STATE1_27 ? 0.0f : 20.0f; roData->atOffsetPlayerForwards = player->stateFlags1 & PLAYER_STATE1_27 ? 0.0f : 20.0f;
roData->interfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT, roData->interfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT,
KEEPON4_FLAG_4 | KEEPON4_FLAG_1); KEEPON4_FLAG_4 | KEEPON4_FLAG_1);
roData->unk_1E = 0x1E; roData->initTimer = 0x1E;
roData->unk_18 = 50.0f; roData->fovTarget = 50.0f;
break; break;
case CAM_ITEM_TYPE_90: case CAM_ITEM_TYPE_90:
roData->unk_00 = playerHeight * -0.3f * yNormal; roData->yOffset = playerHeight * -0.3f * yNormal;
roData->unk_18 = 45.0f; roData->fovTarget = 45.0f;
roData->interfaceField = roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1); CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1);
break; break;
case CAM_ITEM_TYPE_91: case CAM_ITEM_TYPE_91:
roData->unk_00 = playerHeight * -0.1f * yNormal; roData->yOffset = playerHeight * -0.1f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal; roData->eyeDist = playerHeight * 1.5f * yNormal;
roData->unk_08 = -3.0f; roData->pitchTarget = -3.0f;
roData->unk_0C = 10.0f; roData->yawTarget = 10.0f;
roData->unk_18 = 55.0f; roData->fovTarget = 55.0f;
roData->interfaceField = roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3); CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3);
break; break;
case CAM_ITEM_TYPE_81: case CAM_ITEM_TYPE_81:
roData->unk_00 = playerHeight * -0.3f * yNormal; roData->yOffset = playerHeight * -0.3f * yNormal;
roData->unk_04 = playerHeight * 1.5f * yNormal; roData->eyeDist = playerHeight * 1.5f * yNormal;
roData->unk_08 = 2.0f; roData->pitchTarget = 2.0f;
roData->unk_18 = 45.0f; roData->fovTarget = 45.0f;
roData->unk_0C = 20.0f; roData->yawTarget = 20.0f;
roData->unk_10 = 20.0f; roData->atOffsetPlayerForwards = 20.0f;
roData->interfaceField = roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_7); CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_7);
roData->unk_1E = 0x1E; roData->initTimer = 0x1E;
break; break;
case CAM_ITEM_TYPE_11: case CAM_ITEM_TYPE_11:
roData->unk_00 = playerHeight * -0.19f * yNormal; roData->yOffset = playerHeight * -0.19f * yNormal;
roData->unk_04 = playerHeight * 0.7f * yNormal; roData->eyeDist = playerHeight * 0.7f * yNormal;
roData->unk_0C = 130.0f; roData->yawTarget = 130.0f;
roData->unk_10 = 10.0f; roData->atOffsetPlayerForwards = 10.0f;
roData->interfaceField = CAM_INTERFACE_FIELD( roData->interfaceField = CAM_INTERFACE_FIELD(
CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_5 | KEEPON4_FLAG_1); CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_5 | KEEPON4_FLAG_1);
break; break;
@ -3844,10 +3844,10 @@ s32 Camera_KeepOn4(Camera* camera) {
sAtTarget = playerPosRot->pos; sAtTarget = playerPosRot->pos;
sAtTarget.y += playerHeight; sAtTarget.y += playerHeight;
temp_f0_2 = BgCheck_CameraRaycastDown2(&camera->play->colCtx, &spC0, &i, &sAtTarget); temp_f0_2 = BgCheck_CameraRaycastDown2(&camera->play->colCtx, &spC0, &i, &sAtTarget);
if (temp_f0_2 > (roData->unk_00 + sAtTarget.y)) { if (temp_f0_2 > (roData->yOffset + sAtTarget.y)) {
sAtTarget.y = temp_f0_2 + 10.0f; sAtTarget.y = temp_f0_2 + 10.0f;
} else { } else {
sAtTarget.y += roData->unk_00; sAtTarget.y += roData->yOffset;
} }
lineOCCheckNumExclusions = 0; lineOCCheckNumExclusions = 0;
@ -3858,38 +3858,38 @@ s32 Camera_KeepOn4(Camera* camera) {
lineOCCheckNumExclusions++; lineOCCheckNumExclusions++;
func_80043ABC(camera); func_80043ABC(camera);
camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG); camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG);
rwData->unk_10 = roData->unk_1E; rwData->animTimer = roData->initTimer;
rwData->unk_08 = playerPosRot->pos.y - camera->playerPosDelta.y; rwData->unk_08 = playerPosRot->pos.y - camera->playerPosDelta.y;
if (roData->interfaceField & KEEPON4_FLAG_1) { if (roData->interfaceField & KEEPON4_FLAG_1) {
atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08); atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
atToEyeBaseYaw = (s16)((s16)(playerPosRot->rot.y - 0x7FFF) - atToEyeNextDir.yaw) > 0 atToEyeBaseYaw = (s16)((s16)(playerPosRot->rot.y - 0x7FFF) - atToEyeNextDir.yaw) > 0
? (s16)(playerPosRot->rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C) ? (s16)(playerPosRot->rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->yawTarget)
: (s16)(playerPosRot->rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C); : (s16)(playerPosRot->rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->yawTarget);
} else if (roData->interfaceField & KEEPON4_FLAG_2) { } else if (roData->interfaceField & KEEPON4_FLAG_2) {
atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08); atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
atToEyeBaseYaw = CAM_DEG_TO_BINANG(roData->unk_0C); atToEyeBaseYaw = CAM_DEG_TO_BINANG(roData->yawTarget);
} else if ((roData->interfaceField & KEEPON4_FLAG_3) && camera->target != NULL) { } else if ((roData->interfaceField & KEEPON4_FLAG_3) && camera->target != NULL) {
PosRot sp60; PosRot sp60;
sp60 = Actor_GetWorldPosShapeRot(camera->target); sp60 = Actor_GetWorldPosShapeRot(camera->target);
atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08) - sp60.rot.x; atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget) - sp60.rot.x;
atToEyeBaseYaw = (s16)((s16)(sp60.rot.y - 0x7FFF) - atToEyeNextDir.yaw) > 0 atToEyeBaseYaw = (s16)((s16)(sp60.rot.y - 0x7FFF) - atToEyeNextDir.yaw) > 0
? (s16)(sp60.rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C) ? (s16)(sp60.rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->yawTarget)
: (s16)(sp60.rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C); : (s16)(sp60.rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->yawTarget);
lineOCCheckExclusions[1] = camera->target; lineOCCheckExclusions[1] = camera->target;
lineOCCheckNumExclusions++; lineOCCheckNumExclusions++;
} else if ((roData->interfaceField & KEEPON4_FLAG_7) && camera->target != NULL) { } else if ((roData->interfaceField & KEEPON4_FLAG_7) && camera->target != NULL) {
PosRot sp4C; PosRot sp4C;
sp4C = Actor_GetWorld(camera->target); sp4C = Actor_GetWorld(camera->target);
atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08); atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
sp9E = Camera_XZAngle(&sp4C.pos, &playerPosRot->pos); sp9E = Camera_XZAngle(&sp4C.pos, &playerPosRot->pos);
atToEyeBaseYaw = ((s16)(sp9E - atToEyeNextDir.yaw) > 0) ? sp9E + CAM_DEG_TO_BINANG(roData->unk_0C) atToEyeBaseYaw = ((s16)(sp9E - atToEyeNextDir.yaw) > 0) ? sp9E + CAM_DEG_TO_BINANG(roData->yawTarget)
: sp9E - CAM_DEG_TO_BINANG(roData->unk_0C); : sp9E - CAM_DEG_TO_BINANG(roData->yawTarget);
lineOCCheckExclusions[1] = camera->target; lineOCCheckExclusions[1] = camera->target;
lineOCCheckNumExclusions++; lineOCCheckNumExclusions++;
} else if (roData->interfaceField & KEEPON4_FLAG_6) { } else if (roData->interfaceField & KEEPON4_FLAG_6) {
atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08); atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
atToEyeBaseYaw = atToEyeNextDir.yaw; atToEyeBaseYaw = atToEyeNextDir.yaw;
} else { } else {
atToEyeBasePitch = atToEyeNextDir.pitch; atToEyeBasePitch = atToEyeNextDir.pitch;
@ -3898,7 +3898,7 @@ s32 Camera_KeepOn4(Camera* camera) {
vecGeo.pitch = atToEyeBasePitch; vecGeo.pitch = atToEyeBasePitch;
vecGeo.yaw = atToEyeBaseYaw; vecGeo.yaw = atToEyeBaseYaw;
vecGeo.r = roData->unk_04; vecGeo.r = roData->eyeDist;
sEyeCandidate = Camera_AddVecGeoToVec3f(&sAtTarget, &vecGeo); sEyeCandidate = Camera_AddVecGeoToVec3f(&sAtTarget, &vecGeo);
if (!(roData->interfaceField & KEEPON4_FLAG_0)) { if (!(roData->interfaceField & KEEPON4_FLAG_0)) {
angleCnt = ARRAY_COUNT(sCamCheckAroundOffsetsYaw); angleCnt = ARRAY_COUNT(sCamCheckAroundOffsetsYaw);
@ -3916,10 +3916,10 @@ s32 Camera_KeepOn4(Camera* camera) {
PRINTF("camera: item: BG&collision check %d time(s)\n", i); PRINTF("camera: item: BG&collision check %d time(s)\n", i);
#endif #endif
} }
rwData->unk_04 = (s16)(vecGeo.pitch - atToEyeNextDir.pitch) / (f32)rwData->unk_10; rwData->atToEyeTargetStepPitch = (s16)(vecGeo.pitch - atToEyeNextDir.pitch) / (f32)rwData->animTimer;
rwData->unk_00 = (s16)(vecGeo.yaw - atToEyeNextDir.yaw) / (f32)rwData->unk_10; rwData->atToEyeTargetStepYaw = (s16)(vecGeo.yaw - atToEyeNextDir.yaw) / (f32)rwData->animTimer;
rwData->unk_0C = atToEyeNextDir.yaw; rwData->atToEyeTargetYaw = atToEyeNextDir.yaw;
rwData->unk_0E = atToEyeNextDir.pitch; rwData->atToEyeTargetPitch = atToEyeNextDir.pitch;
camera->animState++; camera->animState++;
rwData->unk_12 = 1; rwData->unk_12 = 1;
break; break;
@ -3932,20 +3932,20 @@ s32 Camera_KeepOn4(Camera* camera) {
camera->yOffsetUpdateRate = 0.25f; camera->yOffsetUpdateRate = 0.25f;
camera->atLERPStepScale = 0.75f; camera->atLERPStepScale = 0.75f;
Camera_LERPCeilVec3f(&sAtTarget, at, 0.5f, 0.5f, 0.2f); Camera_LERPCeilVec3f(&sAtTarget, at, 0.5f, 0.5f, 0.2f);
if (roData->unk_10 != 0.0f) { if (roData->atOffsetPlayerForwards != 0.0f) {
vecGeo.r = roData->unk_10; vecGeo.r = roData->atOffsetPlayerForwards;
vecGeo.pitch = 0; vecGeo.pitch = 0;
vecGeo.yaw = playerPosRot->rot.y; vecGeo.yaw = playerPosRot->rot.y;
*at = Camera_AddVecGeoToVec3f(at, &vecGeo); *at = Camera_AddVecGeoToVec3f(at, &vecGeo);
} }
camera->atLERPStepScale = 0.0f; camera->atLERPStepScale = 0.0f;
camera->dist = Camera_LERPCeilF(roData->unk_04, camera->dist, 0.25f, 2.0f); camera->dist = Camera_LERPCeilF(roData->eyeDist, camera->dist, 0.25f, 2.0f);
vecGeo.r = camera->dist; vecGeo.r = camera->dist;
if (rwData->unk_10 != 0) { if (rwData->animTimer != 0) {
camera->stateFlags |= CAM_STATE_LOCK_MODE; camera->stateFlags |= CAM_STATE_LOCK_MODE;
rwData->unk_0C += (s16)rwData->unk_00; rwData->atToEyeTargetYaw += (s16)rwData->atToEyeTargetStepYaw;
rwData->unk_0E += (s16)rwData->unk_04; rwData->atToEyeTargetPitch += (s16)rwData->atToEyeTargetStepPitch;
rwData->unk_10--; rwData->animTimer--;
} else if (roData->interfaceField & KEEPON4_FLAG_4) { } else if (roData->interfaceField & KEEPON4_FLAG_4) {
camera->stateFlags |= (CAM_STATE_CAM_FUNC_FINISH | CAM_STATE_BLOCK_BG); camera->stateFlags |= (CAM_STATE_CAM_FUNC_FINISH | CAM_STATE_BLOCK_BG);
camera->stateFlags |= (CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG); camera->stateFlags |= (CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG);
@ -3967,12 +3967,12 @@ s32 Camera_KeepOn4(Camera* camera) {
} }
} }
} }
vecGeo.yaw = Camera_LERPCeilS(rwData->unk_0C, atToEyeNextDir.yaw, roData->unk_14, 4); vecGeo.yaw = Camera_LERPCeilS(rwData->atToEyeTargetYaw, atToEyeNextDir.yaw, roData->unk_14, 4);
vecGeo.pitch = Camera_LERPCeilS(rwData->unk_0E, atToEyeNextDir.pitch, roData->unk_14, 4); vecGeo.pitch = Camera_LERPCeilS(rwData->atToEyeTargetPitch, atToEyeNextDir.pitch, roData->unk_14, 4);
*eyeNext = Camera_AddVecGeoToVec3f(at, &vecGeo); *eyeNext = Camera_AddVecGeoToVec3f(at, &vecGeo);
*eye = *eyeNext; *eye = *eyeNext;
Camera_BGCheck(camera, at, eye); Camera_BGCheck(camera, at, eye);
camera->fov = Camera_LERPCeilF(roData->unk_18, camera->fov, camera->fovUpdateRate, 1.0f); camera->fov = Camera_LERPCeilF(roData->fovTarget, camera->fov, camera->fovUpdateRate, 1.0f);
camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA); camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA);
//! @bug Missing return, but the return value is not used. //! @bug Missing return, but the return value is not used.
} }

View File

@ -110,7 +110,7 @@ s16 sCamDataRegsInit[CAM_DATA_MAX] = {
0, // CAM_DATA_AT_OFFSET_X 0, // CAM_DATA_AT_OFFSET_X
0, // CAM_DATA_AT_OFFSET_Y 0, // CAM_DATA_AT_OFFSET_Y
0, // CAM_DATA_AT_OFFSET_Z 0, // CAM_DATA_AT_OFFSET_Z
6, // CAM_DATA_UNK_22 6, // CAM_DATA_INIT_TIMER
60, // CAM_DATA_UNK_23 60, // CAM_DATA_UNK_23
30, // CAM_DATA_FOV_SCALE 30, // CAM_DATA_FOV_SCALE
0, // CAM_DATA_YAW_SCALE 0, // CAM_DATA_YAW_SCALE

View File

@ -6,6 +6,7 @@
#include "z_bg_bdan_switch.h" #include "z_bg_bdan_switch.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "one_point_cutscene.h" #include "one_point_cutscene.h"
#include "printf.h" #include "printf.h"
@ -89,7 +90,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -6,6 +6,7 @@
#include "z_bg_bombwall.h" #include "z_bg_bombwall.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "printf.h" #include "printf.h"
#include "sfx.h" #include "sfx.h"
@ -73,7 +74,7 @@ static ColliderTrisInit sTrisInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
3, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -6,6 +6,7 @@
#include "z_bg_haka_sgami.h" #include "z_bg_haka_sgami.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "sfx.h" #include "sfx.h"
#include "z_lib.h" #include "z_lib.h"
@ -102,7 +103,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
4, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -6,6 +6,7 @@
#include "z_bg_haka_trap.h" #include "z_bg_haka_trap.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "rand.h" #include "rand.h"
#include "sfx.h" #include "sfx.h"
@ -106,7 +107,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_bg_hidan_dalm.h" #include "z_bg_hidan_dalm.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "sfx.h" #include "sfx.h"
#include "sys_matrix.h" #include "sys_matrix.h"
@ -95,7 +96,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
4, ARRAY_COUNT(sTrisElementInit),
sTrisElementInit, sTrisElementInit,
}; };

View File

@ -75,7 +75,7 @@ static ColliderTrisInit sTrisInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -6,6 +6,7 @@
#include "z_bg_hidan_hrock.h" #include "z_bg_hidan_hrock.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "rumble.h" #include "rumble.h"
#include "sfx.h" #include "sfx.h"
@ -71,7 +72,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -76,7 +77,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -115,7 +115,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
6, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -119,7 +119,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
6, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -2,6 +2,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -63,7 +64,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "printf.h" #include "printf.h"
#include "sfx.h" #include "sfx.h"
@ -60,7 +61,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_bg_jya_goroiwa.h" #include "z_bg_jya_goroiwa.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "sfx.h" #include "sfx.h"
#include "z_lib.h" #include "z_lib.h"
@ -65,7 +66,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -66,7 +66,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -69,7 +69,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -6,6 +6,7 @@
#include "z_bg_menkuri_eye.h" #include "z_bg_menkuri_eye.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -60,7 +61,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -78,7 +78,7 @@ static ColliderTrisInit sTrisInitFloor = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInitFloor),
sTrisElementsInitFloor, sTrisElementsInitFloor,
}; };
@ -105,7 +105,7 @@ static ColliderTrisInit sTrisInitRutoWall = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
1, ARRAY_COUNT(sTrisElementsInitRutoWall),
sTrisElementsInitRutoWall, sTrisElementsInitRutoWall,
}; };
@ -143,7 +143,7 @@ static ColliderTrisInit sTrisInitUnusedWall = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInitWall),
sTrisElementsInitWall, sTrisElementsInitWall,
}; };
@ -156,7 +156,7 @@ static ColliderTrisInit sTrisInitStingerWall = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInitWall),
sTrisElementsInitWall, sTrisElementsInitWall,
}; };

View File

@ -70,7 +70,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_bg_po_event.h" #include "z_bg_po_event.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -89,7 +90,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -6,6 +6,7 @@
#include "z_bg_spot06_objects.h" #include "z_bg_spot06_objects.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -93,7 +94,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -85,7 +85,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
3, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -75,7 +75,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -83,7 +83,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
2, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -6,6 +6,7 @@
#include "z_bg_ydan_maruta.h" #include "z_bg_ydan_maruta.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "one_point_cutscene.h" #include "one_point_cutscene.h"
#include "sfx.h" #include "sfx.h"
@ -73,7 +74,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_bg_ydan_sp.h" #include "z_bg_ydan_sp.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -85,7 +86,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -1,3 +1,4 @@
#include "array_count.h"
#include "collision_check.h" #include "collision_check.h"
static u8 D_808C7000[] = { static u8 D_808C7000[] = {
@ -231,7 +232,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
19, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -221,6 +221,6 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
19, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -111,6 +111,6 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
9, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -247,7 +247,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
13, ARRAY_COUNT(sColliderJntSphElementsInit),
sColliderJntSphElementsInit, sColliderJntSphElementsInit,
}; };

View File

@ -221,7 +221,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
19, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -1,3 +1,4 @@
#include "array_count.h"
#include "collision_check.h" #include "collision_check.h"
static ColliderJntSphElementInit sJntSphElementsInitHand[] = { static ColliderJntSphElementInit sJntSphElementsInitHand[] = {
@ -133,7 +134,7 @@ static ColliderJntSphInit sJntSphInitHand = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
11, ARRAY_COUNT(sJntSphElementsInitHand),
sJntSphElementsInitHand, sJntSphElementsInitHand,
}; };
@ -270,7 +271,7 @@ static ColliderJntSphInit sJntSphInitHead = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
11, ARRAY_COUNT(sJntSphElementsInitHead),
sJntSphElementsInitHead, sJntSphElementsInitHead,
}; };

View File

@ -6,6 +6,7 @@
#include "z_door_killer.h" #include "z_door_killer.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "printf.h" #include "printf.h"
@ -96,7 +97,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -6,6 +6,7 @@
#include "z_en_ba.h" #include "z_en_ba.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -85,7 +86,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
2, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_bb.h" #include "z_en_bb.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "attributes.h" #include "attributes.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
@ -248,7 +249,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_bom.h" #include "z_en_bom.h"
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h" #include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -85,7 +86,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_bombf.h" #include "z_en_bombf.h"
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h" #include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "regs.h" #include "regs.h"
@ -89,7 +90,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -1,6 +1,7 @@
#include "z_en_bubble.h" #include "z_en_bubble.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "sfx.h" #include "sfx.h"
@ -70,7 +71,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
2, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Elf/z_en_elf.h" #include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -62,7 +63,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -1,5 +1,6 @@
#include "z_en_crow.h" #include "z_en_crow.h"
#include "array_count.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
#include "rand.h" #include "rand.h"
@ -66,7 +67,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -144,7 +144,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
7, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_dh.h" #include "z_en_dh.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "attributes.h" #include "attributes.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
@ -113,7 +114,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Dh/z_en_dh.h" #include "overlays/actors/ovl_En_Dh/z_en_dh.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -151,7 +152,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
5, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -3,6 +3,7 @@
#include "overlays/actors/ovl_En_Bombf/z_en_bombf.h" #include "overlays/actors/ovl_En_Bombf/z_en_bombf.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -141,7 +142,7 @@ static ColliderJntSphInit sBodyJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
6, ARRAY_COUNT(sBodyElementsInit),
sBodyElementsInit, sBodyElementsInit,
}; };
@ -190,7 +191,7 @@ static ColliderTrisInit sHardTrisInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
3, ARRAY_COUNT(sHardElementsInit),
sHardElementsInit, sHardElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "libc64/math64.h" #include "libc64/math64.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "segmented_address.h" #include "segmented_address.h"
@ -206,7 +207,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
12, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -550,7 +550,7 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) {
Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_LAUGH); Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_LAUGH);
} }
Actor_SetPlayerKnockback(play, &this->actor, 3.0f, this->actor.world.rot.y, 0.0f, Actor_SetPlayerKnockback(play, &this->actor, 3.0f, this->actor.world.rot.y, 0.0f,
PLAYER_KNOCKBACK_LARGE_SHOCK, 0x10); PLAYER_KNOCKBACK_LARGE_ELECTRIFIED, 0x10);
} }
break; break;
case FHGFIRE_LIGHT_BLUE: case FHGFIRE_LIGHT_BLUE:

View File

@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h" #include "overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -85,7 +86,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_fish.h" #include "z_en_fish.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -73,7 +74,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -9,6 +9,7 @@
#include "libc64/math64.h" #include "libc64/math64.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "segmented_address.h" #include "segmented_address.h"
@ -74,7 +75,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_geldb.h" #include "z_en_geldb.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -153,7 +154,7 @@ static ColliderTrisInit sBlockTrisInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sBlockTrisElementsInit),
sBlockTrisElementsInit, sBlockTrisElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "ichain.h" #include "ichain.h"
#include "printf.h" #include "printf.h"
#include "quake.h" #include "quake.h"
@ -93,7 +94,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_honotrap.h" #include "z_en_honotrap.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -110,7 +111,7 @@ static ColliderTrisInit sTrisInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -166,7 +166,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1 | OC2_UNK1, OC2_TYPE_1 | OC2_UNK1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_horse_ganon.h" #include "z_en_horse_ganon.h"
#include "libc64/math64.h" #include "libc64/math64.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -97,7 +98,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1 | OC2_UNK1, OC2_TYPE_1 | OC2_UNK1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -96,7 +96,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1 | OC2_UNK1, OC2_TYPE_1 | OC2_UNK1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -88,7 +88,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1 | OC2_UNK1, OC2_TYPE_1 | OC2_UNK1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -141,7 +141,7 @@ static ColliderTrisInit sTrisInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit, sTrisElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.h" #include "overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -93,7 +94,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sColliderElementsInit),
sColliderElementsInit, sColliderElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_mb.h" #include "z_en_mb.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -160,7 +161,7 @@ static ColliderTrisInit sFrontShieldingTrisInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_TRIS, COLSHAPE_TRIS,
}, },
2, ARRAY_COUNT(sFrontShieldingTrisElementsInit),
sFrontShieldingTrisElementsInit, sFrontShieldingTrisElementsInit,
}; };

View File

@ -1,6 +1,7 @@
#include "z_en_ny.h" #include "z_en_ny.h"
#include "libc64/math64.h" #include "libc64/math64.h"
#include "array_count.h"
#include "attributes.h" #include "attributes.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
@ -74,7 +75,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -3,6 +3,7 @@
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -113,7 +114,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_poh.h" #include "z_en_poh.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -113,7 +114,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Encount1/z_en_encount1.h" #include "overlays/actors/ovl_En_Encount1/z_en_encount1.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -89,7 +90,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
2, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -121,7 +121,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -2,6 +2,7 @@
#include "libc64/math64.h" #include "libc64/math64.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "attributes.h" #include "attributes.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
@ -71,7 +72,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -9,6 +9,7 @@
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h" #include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -125,7 +126,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_en_tp.h" #include "z_en_tp.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -91,7 +92,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -9,6 +9,7 @@
#include "overlays/actors/ovl_En_Kanban/z_en_kanban.h" #include "overlays/actors/ovl_En_Kanban/z_en_kanban.h"
#include "assets/objects/object_fish/object_fish.h" #include "assets/objects/object_fish/object_fish.h"
#include "libc64/math64.h" #include "libc64/math64.h"
#include "array_count.h"
#include "attributes.h" #include "attributes.h"
#include "controller.h" #include "controller.h"
#include "gfx.h" #include "gfx.h"
@ -368,7 +369,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1, OC2_TYPE_1,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
12, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -7,6 +7,7 @@
#include "z_mir_ray.h" #include "z_mir_ray.h"
#include "libu64/debug.h" #include "libu64/debug.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -102,7 +103,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE, OC2_NONE,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -66,7 +67,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit, sJntSphElementsInit,
}; };

View File

@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h" #include "overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h"
#include "libc64/qrand.h" #include "libc64/qrand.h"
#include "array_count.h"
#include "gfx.h" #include "gfx.h"
#include "gfx_setupdl.h" #include "gfx_setupdl.h"
#include "ichain.h" #include "ichain.h"
@ -84,7 +85,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_2, OC2_TYPE_2,
COLSHAPE_JNTSPH, COLSHAPE_JNTSPH,
}, },
1, ARRAY_COUNT(sColliderJntSphElementsInit),
sColliderJntSphElementsInit, sColliderJntSphElementsInit,
}; };

View File

@ -4619,7 +4619,7 @@ static LinkAnimationHeader* D_808544B0[] = {
&gPlayerAnim_link_normal_back_hit, &gPlayerAnim_link_anchor_back_hitR, &gPlayerAnim_link_normal_back_hit, &gPlayerAnim_link_anchor_back_hitR,
}; };
void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 speed, f32 yVelocity, s16 yRot, void func_80837C0C(PlayState* play, Player* this, s32 hitResponseType, f32 speed, f32 yVelocity, s16 yRot,
s32 invincibilityTimer) { s32 invincibilityTimer) {
LinkAnimationHeader* anim = NULL; LinkAnimationHeader* anim = NULL;
LinkAnimationHeader** sp28; LinkAnimationHeader** sp28;
@ -4642,7 +4642,7 @@ void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 sp
Player_SetIntangibility(this, invincibilityTimer); Player_SetIntangibility(this, invincibilityTimer);
if (damageResponseType == PLAYER_HIT_RESPONSE_ICE_TRAP) { if (hitResponseType == PLAYER_HIT_RESPONSE_FROZEN) {
Player_SetupAction(play, this, Player_Action_8084FB10, 0); Player_SetupAction(play, this, Player_Action_8084FB10, 0);
anim = &gPlayerAnim_link_normal_ice_down; anim = &gPlayerAnim_link_normal_ice_down;
@ -4652,7 +4652,7 @@ void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 sp
Player_PlaySfx(this, NA_SE_PL_FREEZE_S); Player_PlaySfx(this, NA_SE_PL_FREEZE_S);
Player_PlayVoiceSfx(this, NA_SE_VO_LI_FREEZE); Player_PlayVoiceSfx(this, NA_SE_VO_LI_FREEZE);
} else if (damageResponseType == PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK) { } else if (hitResponseType == PLAYER_HIT_RESPONSE_ELECTRIFIED) {
Player_SetupAction(play, this, Player_Action_8084FBF4, 0); Player_SetupAction(play, this, Player_Action_8084FBF4, 0);
Player_RequestRumble(this, 255, 80, 150, 0); Player_RequestRumble(this, 255, 80, 150, 0);
@ -4673,8 +4673,8 @@ void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 sp
anim = &gPlayerAnim_link_swimer_swim_hit; anim = &gPlayerAnim_link_swimer_swim_hit;
Player_PlayVoiceSfx(this, NA_SE_VO_LI_DAMAGE_S); Player_PlayVoiceSfx(this, NA_SE_VO_LI_DAMAGE_S);
} else if ((damageResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE) || } else if ((hitResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE) ||
(damageResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL) || (hitResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL) ||
!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || !(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) ||
(this->stateFlags1 & (PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_21))) { (this->stateFlags1 & (PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_21))) {
Player_SetupAction(play, this, Player_Action_8084377C, 0); Player_SetupAction(play, this, Player_Action_8084377C, 0);
@ -4684,7 +4684,7 @@ void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 sp
Player_RequestRumble(this, 255, 20, 150, 0); Player_RequestRumble(this, 255, 20, 150, 0);
func_80832224(this); func_80832224(this);
if (damageResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL) { if (hitResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL) {
this->av2.actionVar2 = 4; this->av2.actionVar2 = 4;
this->actor.speed = 3.0f; this->actor.speed = 3.0f;
@ -4867,7 +4867,7 @@ s32 func_808382DC(Player* this, PlayState* play) {
func_80838280(this); func_80838280(this);
if (this->knockbackType == PLAYER_KNOCKBACK_LARGE_SHOCK) { if (this->knockbackType == PLAYER_KNOCKBACK_LARGE_ELECTRIFIED) {
this->bodyShockTimer = 40; this->bodyShockTimer = 40;
} }
@ -4939,9 +4939,9 @@ s32 func_808382DC(Player* this, PlayState* play) {
if (this->stateFlags1 & PLAYER_STATE1_27) { if (this->stateFlags1 & PLAYER_STATE1_27) {
sp4C = PLAYER_HIT_RESPONSE_NONE; sp4C = PLAYER_HIT_RESPONSE_NONE;
} else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_ICE) { } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_ICE) {
sp4C = PLAYER_HIT_RESPONSE_ICE_TRAP; sp4C = PLAYER_HIT_RESPONSE_FROZEN;
} else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_ELECTRIC) { } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_ELECTRIC) {
sp4C = PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK; sp4C = PLAYER_HIT_RESPONSE_ELECTRIFIED;
} else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_KNOCKBACK) { } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_KNOCKBACK) {
sp4C = PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE; sp4C = PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE;
} else { } else {
@ -9147,8 +9147,7 @@ s32 func_80842DF4(PlayState* play, Player* this) {
if (this->actor.colChkInfo.atHitBacklash == HIT_BACKLASH_ELECTRIC) { if (this->actor.colChkInfo.atHitBacklash == HIT_BACKLASH_ELECTRIC) {
this->actor.colChkInfo.damage = 8; this->actor.colChkInfo.damage = 8;
func_80837C0C(play, this, PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK, 0.0f, 0.0f, this->actor.shape.rot.y, func_80837C0C(play, this, PLAYER_HIT_RESPONSE_ELECTRIFIED, 0.0f, 0.0f, this->actor.shape.rot.y, 20);
20);
return 1; return 1;
} }
} }
@ -13905,7 +13904,7 @@ void Player_Action_8084E6D4(Player* this, PlayState* play) {
func_8083C0E8(this, play); func_8083C0E8(this, play);
} else { } else {
this->actor.colChkInfo.damage = 0; this->actor.colChkInfo.damage = 0;
func_80837C0C(play, this, PLAYER_HIT_RESPONSE_ICE_TRAP, 0.0f, 0.0f, 0, 20); func_80837C0C(play, this, PLAYER_HIT_RESPONSE_FROZEN, 0.0f, 0.0f, 0, 20);
} }
return; return;
} }

View File

@ -353,16 +353,12 @@ assets/objects/object_tk/object_tk.c
assets/objects/object_toki_objects/object_toki_objects.c assets/objects/object_toki_objects/object_toki_objects.c
assets/objects/object_torch2/object_torch2.c assets/objects/object_torch2/object_torch2.c
assets/objects/object_toryo/object_toryo.c assets/objects/object_toryo/object_toryo.c
assets/objects/object_tp/object_tp.c
assets/objects/object_trap/object_trap.c assets/objects/object_trap/object_trap.c
assets/objects/object_triforce_spot/object_triforce_spot.c
assets/objects/object_tr/object_tr.c assets/objects/object_tr/object_tr.c
assets/objects/object_ts/object_ts.c assets/objects/object_ts/object_ts.c
assets/objects/object_tsubo/object_tsubo.c assets/objects/object_tsubo/object_tsubo.c
assets/objects/object_tw/object_tw.c assets/objects/object_tw/object_tw.c
assets/objects/object_umajump/object_umajump.c
assets/objects/object_vali/object_vali.c assets/objects/object_vali/object_vali.c
assets/objects/object_vase/object_vase.c
assets/objects/object_vm/object_vm.c assets/objects/object_vm/object_vm.c
assets/objects/object_wallmaster/object_wallmaster.c assets/objects/object_wallmaster/object_wallmaster.c
assets/objects/object_warp1/object_warp1.c assets/objects/object_warp1/object_warp1.c
@ -372,9 +368,7 @@ assets/objects/object_wood02/object_wood02.c
assets/objects/object_xc/object_xc.c assets/objects/object_xc/object_xc.c
assets/objects/object_yabusame_point/object_yabusame_point.c assets/objects/object_yabusame_point/object_yabusame_point.c
assets/objects/object_ydan_objects/object_ydan_objects.c assets/objects/object_ydan_objects/object_ydan_objects.c
assets/objects/object_yukabyun/object_yukabyun.c
assets/objects/object_zf/object_zf.c assets/objects/object_zf/object_zf.c
assets/objects/object_zg/object_zg.c
assets/objects/object_zl1/object_zl1.c assets/objects/object_zl1/object_zl1.c
assets/objects/object_zl2_anime1/object_zl2_anime1.c assets/objects/object_zl2_anime1/object_zl2_anime1.c
assets/objects/object_zl2_anime2/object_zl2_anime2.c assets/objects/object_zl2_anime2/object_zl2_anime2.c