mirror of https://github.com/zeldaret/oot.git
Merge branch 'main' into skelanime_init_arraycount
This commit is contained in:
commit
af8120c4a9
|
@ -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"
|
||||
};
|
|
@ -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
|
|
@ -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"
|
||||
};
|
|
@ -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
|
|
@ -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"
|
||||
};
|
|
@ -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"
|
||||
};
|
|
@ -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
|
|
@ -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"
|
||||
};
|
|
@ -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
|
|
@ -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"
|
||||
};
|
|
@ -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"
|
||||
};
|
|
@ -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
|
|
@ -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"
|
||||
};
|
|
@ -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"
|
||||
};
|
|
@ -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
|
|
@ -710,16 +710,16 @@ u64 gCBtnSymbolsTex[TEX_LEN(u64, gCBtnSymbolsTex_WIDTH, gCBtnSymbolsTex_HEIGHT,
|
|||
#include "assets/textures/icon_item_static/gCBtnSymbolsTex.ia8.inc.c"
|
||||
};
|
||||
|
||||
#define gNamePanelLeftTex_WIDTH 72
|
||||
#define gNamePanelLeftTex_HEIGHT 24
|
||||
u64 gNamePanelLeftTex[TEX_LEN(u64, gNamePanelLeftTex_WIDTH, gNamePanelLeftTex_HEIGHT, 8)] = {
|
||||
#include "assets/textures/icon_item_static/gNamePanelLeftTex.ia8.inc.c"
|
||||
#define gInfoPanelBgLeftTex_WIDTH 72
|
||||
#define gInfoPanelBgLeftTex_HEIGHT 24
|
||||
u64 gInfoPanelBgLeftTex[TEX_LEN(u64, gInfoPanelBgLeftTex_WIDTH, gInfoPanelBgLeftTex_HEIGHT, 8)] = {
|
||||
#include "assets/textures/icon_item_static/gInfoPanelBgLeftTex.ia8.inc.c"
|
||||
};
|
||||
|
||||
#define gNamePanelRightTex_WIDTH 72
|
||||
#define gNamePanelRightTex_HEIGHT 24
|
||||
u64 gNamePanelRightTex[TEX_LEN(u64, gNamePanelRightTex_WIDTH, gNamePanelRightTex_HEIGHT, 8)] = {
|
||||
#include "assets/textures/icon_item_static/gNamePanelRightTex.ia8.inc.c"
|
||||
#define gInfoPanelBgRightTex_WIDTH 72
|
||||
#define gInfoPanelBgRightTex_HEIGHT 24
|
||||
u64 gInfoPanelBgRightTex[TEX_LEN(u64, gInfoPanelBgRightTex_WIDTH, gInfoPanelBgRightTex_HEIGHT, 8)] = {
|
||||
#include "assets/textures/icon_item_static/gInfoPanelBgRightTex.ia8.inc.c"
|
||||
};
|
||||
|
||||
#define gLButtonTex_WIDTH 24
|
||||
|
@ -748,8 +748,8 @@ u64 gMagicArrowEquipEffectTex[TEX_LEN(u64, gMagicArrowEquipEffectTex_WIDTH, gMag
|
|||
#include "assets/textures/icon_item_static/gMagicArrowEquipEffectTex.ia8.inc.c"
|
||||
};
|
||||
|
||||
Gfx gItemNamePanelDL[18] = {
|
||||
#include "assets/textures/icon_item_static/gItemNamePanelDL.inc.c"
|
||||
Gfx gInfoPanelBgDL[18] = {
|
||||
#include "assets/textures/icon_item_static/gInfoPanelBgDL.inc.c"
|
||||
};
|
||||
|
||||
Gfx gLButtonIconDL[10] = {
|
||||
|
|
|
@ -193,7 +193,7 @@ extern u64 gSongNoteTex[TEX_LEN(u64, gSongNoteTex_WIDTH, gSongNoteTex_HEIGHT, 8)
|
|||
#define gMagicArrowEquipEffectTex_HEIGHT gMagicArrowEquipEffectTex_SIZE
|
||||
extern u64 gMagicArrowEquipEffectTex[TEX_LEN(u64, gMagicArrowEquipEffectTex_WIDTH, gMagicArrowEquipEffectTex_HEIGHT, 8)];
|
||||
|
||||
extern Gfx gItemNamePanelDL[18];
|
||||
extern Gfx gInfoPanelBgDL[18];
|
||||
extern Gfx gLButtonIconDL[10];
|
||||
extern Gfx gRButtonIconDL[10];
|
||||
extern Gfx gCButtonIconsDL[11];
|
||||
|
|
|
@ -169,14 +169,14 @@
|
|||
<Texture Name="gABtnSymbolTex" Format="ia8" Width="24" Height="16" Offset="0x861C0"/>
|
||||
<Texture Name="gBBtnSymbolTex" Format="ia8" Width="24" Height="16" Offset="0x86340"/>
|
||||
<Texture Name="gCBtnSymbolsTex" Format="ia8" Width="48" Height="16" Offset="0x864C0"/>
|
||||
<Texture Name="gNamePanelLeftTex" Format="ia8" Width="72" Height="24" Offset="0x867C0"/>
|
||||
<Texture Name="gNamePanelRightTex" Format="ia8" Width="72" Height="24" Offset="0x86E80"/>
|
||||
<Texture Name="gInfoPanelBgLeftTex" Format="ia8" Width="72" Height="24" Offset="0x867C0"/>
|
||||
<Texture Name="gInfoPanelBgRightTex" Format="ia8" Width="72" Height="24" Offset="0x86E80"/>
|
||||
<Texture Name="gLButtonTex" Format="ia8" Width="24" Height="32" Offset="0x87540"/>
|
||||
<Texture Name="gRButtonTex" Format="ia8" Width="24" Height="32" Offset="0x87840"/>
|
||||
<Texture Name="gUnknownJPNTex" Format="ia8" Width="80" Height="16" Offset="0x87B40"/>
|
||||
<Texture Name="gSongNoteTex" Format="ia8" Width="16" Height="24" Offset="0x88040"/>
|
||||
<Texture Name="gMagicArrowEquipEffectTex" Format="ia8" Width="32" Height="32" Offset="0x881C0"/>
|
||||
<DList Name="gItemNamePanelDL" Offset="0x885C0"/>
|
||||
<DList Name="gInfoPanelBgDL" Offset="0x885C0"/>
|
||||
<DList Name="gLButtonIconDL" Offset="0x88650"/>
|
||||
<DList Name="gRButtonIconDL" Offset="0x886A0"/>
|
||||
<DList Name="gCButtonIconsDL" Offset="0x886F0"/>
|
||||
|
|
|
@ -171,14 +171,14 @@
|
|||
<Texture Name="gABtnSymbolTex" Format="ia8" Width="24" Height="16" Offset="0x875C0"/>
|
||||
<Texture Name="gBBtnSymbolTex" Format="ia8" Width="24" Height="16" Offset="0x87740"/>
|
||||
<Texture Name="gCBtnSymbolsTex" Format="ia8" Width="48" Height="16" Offset="0x878C0"/>
|
||||
<Texture Name="gNamePanelLeftTex" Format="ia8" Width="72" Height="24" Offset="0x87BC0"/>
|
||||
<Texture Name="gNamePanelRightTex" Format="ia8" Width="72" Height="24" Offset="0x88280"/>
|
||||
<Texture Name="gInfoPanelBgLeftTex" Format="ia8" Width="72" Height="24" Offset="0x87BC0"/>
|
||||
<Texture Name="gInfoPanelBgRightTex" Format="ia8" Width="72" Height="24" Offset="0x88280"/>
|
||||
<Texture Name="gLButtonTex" Format="ia8" Width="24" Height="32" Offset="0x88940"/>
|
||||
<Texture Name="gRButtonTex" Format="ia8" Width="24" Height="32" Offset="0x88C40"/>
|
||||
<Texture Name="gUnknownJPNTex" Format="ia8" Width="80" Height="16" Offset="0x88F40"/>
|
||||
<Texture Name="gSongNoteTex" Format="ia8" Width="16" Height="24" Offset="0x89440"/>
|
||||
<Texture Name="gMagicArrowEquipEffectTex" Format="ia8" Width="32" Height="32" Offset="0x895C0"/>
|
||||
<DList Name="gItemNamePanelDL" Offset="0x899C0"/>
|
||||
<DList Name="gInfoPanelBgDL" Offset="0x899C0"/>
|
||||
<DList Name="gLButtonIconDL" Offset="0x89A50"/>
|
||||
<DList Name="gRButtonIconDL" Offset="0x89AA0"/>
|
||||
<DList Name="gCButtonIconsDL" Offset="0x89AF0"/>
|
||||
|
|
|
@ -334,7 +334,7 @@ typedef enum CameraDataType {
|
|||
/* 0x13 */ CAM_DATA_AT_OFFSET_X,
|
||||
/* 0x14 */ CAM_DATA_AT_OFFSET_Y,
|
||||
/* 0x15 */ CAM_DATA_AT_OFFSET_Z,
|
||||
/* 0x16 */ CAM_DATA_UNK_22,
|
||||
/* 0x16 */ CAM_DATA_INIT_TIMER,
|
||||
/* 0x17 */ CAM_DATA_UNK_23,
|
||||
/* 0x18 */ CAM_DATA_FOV_SCALE,
|
||||
/* 0x19 */ CAM_DATA_YAW_SCALE,
|
||||
|
@ -846,15 +846,15 @@ typedef struct KeepOn3 {
|
|||
{ interfaceField, CAM_DATA_INTERFACE_FIELD }
|
||||
|
||||
typedef struct KeepOn4ReadOnlyData {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ f32 unk_14;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
/* 0x00 */ f32 yOffset;
|
||||
/* 0x04 */ f32 eyeDist;
|
||||
/* 0x08 */ f32 pitchTarget; // degrees
|
||||
/* 0x0C */ f32 yawTarget; // degrees
|
||||
/* 0x10 */ f32 atOffsetPlayerForwards; // distance to offset `at` by, in the player's forwards direction
|
||||
/* 0x14 */ f32 unk_14; // scale for stepping yaw and pitch of "at to eye" to target
|
||||
/* 0x18 */ f32 fovTarget;
|
||||
/* 0x1C */ s16 interfaceField;
|
||||
/* 0x1E */ s16 unk_1E;
|
||||
/* 0x1E */ s16 initTimer;
|
||||
} KeepOn4ReadOnlyData; // size = 0x20
|
||||
|
||||
typedef enum CameraItemType {
|
||||
|
@ -874,14 +874,14 @@ typedef enum CameraItemType {
|
|||
} CameraItemType;
|
||||
|
||||
typedef struct KeepOn4ReadWriteData {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ s16 unk_0C;
|
||||
/* 0x0E */ s16 unk_0E;
|
||||
/* 0x10 */ s16 unk_10;
|
||||
/* 0x12 */ s16 unk_12;
|
||||
/* 0x14 */ s16 unk_14;
|
||||
/* 0x00 */ f32 atToEyeTargetStepYaw; // binang
|
||||
/* 0x04 */ f32 atToEyeTargetStepPitch; // binang
|
||||
/* 0x08 */ f32 unk_08; // set but unused
|
||||
/* 0x0C */ s16 atToEyeTargetYaw;
|
||||
/* 0x0E */ s16 atToEyeTargetPitch;
|
||||
/* 0x10 */ s16 animTimer;
|
||||
/* 0x12 */ s16 unk_12; // set but unused
|
||||
/* 0x14 */ s16 itemType;
|
||||
} KeepOn4ReadWriteData; // size = 0x18
|
||||
|
||||
typedef struct KeepOn4 {
|
||||
|
@ -898,16 +898,16 @@ typedef struct KeepOn4 {
|
|||
#define KEEPON4_FLAG_6 (1 << 6)
|
||||
#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 }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ yawTarget, CAM_DATA_YAW_TARGET }, \
|
||||
{ atOffsetZ, CAM_DATA_AT_OFFSET_Z }, \
|
||||
{ atOffsetPlayerForwards, CAM_DATA_AT_OFFSET_Z }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ interfaceField, CAM_DATA_INTERFACE_FIELD }, \
|
||||
{ yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ unk_22, CAM_DATA_UNK_22 }
|
||||
{ unk_14, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
|
||||
{ initTimer, CAM_DATA_INIT_TIMER }
|
||||
|
||||
typedef struct KeepOn0ReadOnlyData {
|
||||
/* 0x00 */ f32 fovScale;
|
||||
|
@ -1463,7 +1463,7 @@ typedef struct Special5 {
|
|||
{ yOffset, CAM_DATA_Y_OFFSET }, \
|
||||
{ eyeDist, CAM_DATA_EYE_DIST }, \
|
||||
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
|
||||
{ unk_22, CAM_DATA_UNK_22 }, \
|
||||
{ unk_22, CAM_DATA_INIT_TIMER }, \
|
||||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
|
@ -1477,7 +1477,7 @@ typedef struct Special5 {
|
|||
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
|
||||
{ fov, CAM_DATA_FOV }, \
|
||||
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
|
||||
{ unk_22, CAM_DATA_UNK_22 }, \
|
||||
{ unk_22, CAM_DATA_INIT_TIMER }, \
|
||||
{ interfaceField, CAM_DATA_INTERFACE_FIELD }
|
||||
|
||||
typedef struct Special7ReadWriteData {
|
||||
|
|
|
@ -80,22 +80,35 @@ typedef struct ColliderInitToActor {
|
|||
/* 0x07 */ u8 shape;
|
||||
} ColliderInitToActor; // size = 0x08
|
||||
|
||||
typedef enum HitSpecialEffect {
|
||||
HIT_SPECIAL_EFFECT_NONE,
|
||||
HIT_SPECIAL_EFFECT_FIRE,
|
||||
HIT_SPECIAL_EFFECT_ICE,
|
||||
HIT_SPECIAL_EFFECT_ELECTRIC,
|
||||
HIT_SPECIAL_EFFECT_KNOCKBACK
|
||||
} HitSpecialEffect;
|
||||
|
||||
typedef struct ColliderElementDamageInfoAT {
|
||||
/* 0x00 */ u32 dmgFlags; // Damage types dealt by this collider element as AT.
|
||||
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x04 */ u8 hitSpecialEffect; // The hit special effect applied to any actor attacked by this AT collider.
|
||||
/* 0x05 */ u8 damage; // Damage
|
||||
} ColliderElementDamageInfoAT; // size = 0x08
|
||||
|
||||
typedef enum HitBacklash {
|
||||
HIT_BACKLASH_NONE,
|
||||
HIT_BACKLASH_ELECTRIC
|
||||
} HitBacklash;
|
||||
|
||||
typedef struct ColliderElementDamageInfoAC {
|
||||
/* 0x00 */ u32 dmgFlags; // Damage types that may affect this collider element as AC.
|
||||
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x04 */ u8 hitBacklash; // The hit backlash type applied to any attacker hurting this AC collider.
|
||||
/* 0x05 */ u8 defense; // Damage Resistance
|
||||
/* 0x06 */ Vec3s hitPos; // Point of contact
|
||||
} ColliderElementDamageInfoAC; // size = 0x0C
|
||||
|
||||
typedef struct ColliderElementDamageInfoACInit {
|
||||
/* 0x00 */ u32 dmgFlags; // Damage types that may affect this collider element as AC.
|
||||
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x04 */ u8 hitBacklash; // The hit backlash type applied to any attacker hurting this AC collider.
|
||||
/* 0x05 */ u8 defense; // Damage Resistance
|
||||
} ColliderElementDamageInfoACInit; // size = 0x08
|
||||
|
||||
|
@ -465,8 +478,8 @@ typedef struct CollisionCheckInfo {
|
|||
/* 0x17 */ u8 health; // Note: some actors may use their own health variable instead of this one
|
||||
/* 0x18 */ u8 damage; // Amount to decrement health by
|
||||
/* 0x19 */ u8 damageReaction; // Stores what reaction should occur after being hit
|
||||
/* 0x1A */ u8 atHitEffect; // Stores what effect should occur when AT connects with an AC
|
||||
/* 0x1B */ u8 acHitEffect; // Stores what effect should occur when AC is touched by an AT
|
||||
/* 0x1A */ u8 atHitBacklash; // Stores the hit backlash type received from attacking an AC collider
|
||||
/* 0x1B */ u8 acHitSpecialEffect; // Stores the hit special effect received from being attacked by an AT collider
|
||||
} CollisionCheckInfo; // size = 0x1C
|
||||
|
||||
DamageTable* DamageTable_Get(s32 index);
|
||||
|
|
|
@ -353,7 +353,6 @@ typedef union CsCmdCam {
|
|||
s32 _words[2];
|
||||
} CsCmdCam; // size = 0x8
|
||||
|
||||
|
||||
typedef union CsCmdMisc {
|
||||
struct {
|
||||
/* 0x00 */ u16 type;
|
||||
|
|
|
@ -168,7 +168,7 @@ typedef struct PauseContext {
|
|||
/* 0x0148 */ Vtx* equipPageVtx;
|
||||
/* 0x014C */ Vtx* mapPageVtx;
|
||||
/* 0x0150 */ Vtx* questPageVtx;
|
||||
/* 0x0154 */ Vtx* infoPanelVtx;
|
||||
/* 0x0154 */ Vtx* uiOverlayVtx;
|
||||
/* 0x0158 */ Vtx* itemVtx;
|
||||
/* 0x015C */ Vtx* equipVtx;
|
||||
/* 0x0160 */ char unk_160[0x04];
|
||||
|
|
|
@ -647,16 +647,16 @@ typedef enum PlayerKnockbackType {
|
|||
/* 0 */ PLAYER_KNOCKBACK_NONE, // No knockback
|
||||
/* 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
|
||||
/* 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;
|
||||
|
||||
typedef enum PlayerDamageResponseType {
|
||||
typedef enum PlayerHitResponseType {
|
||||
/* 0 */ PLAYER_HIT_RESPONSE_NONE,
|
||||
/* 1 */ PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE,
|
||||
/* 2 */ PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL,
|
||||
/* 3 */ PLAYER_HIT_RESPONSE_ICE_TRAP,
|
||||
/* 4 */ PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK
|
||||
} PlayerDamageResponseType;
|
||||
/* 3 */ PLAYER_HIT_RESPONSE_FROZEN,
|
||||
/* 4 */ PLAYER_HIT_RESPONSE_ELECTRIFIED
|
||||
} PlayerHitResponseType;
|
||||
|
||||
typedef struct PlayerAgeProperties {
|
||||
/* 0x00 */ f32 ceilingCheckHeight;
|
||||
|
|
|
@ -401,6 +401,7 @@ typedef enum SceneLayer {
|
|||
} SceneLayer;
|
||||
|
||||
#define IS_CUTSCENE_LAYER (gSaveContext.sceneLayer >= SCENE_LAYER_CUTSCENE_FIRST)
|
||||
#define GET_CUTSCENE_LAYER(index) (SCENE_LAYER_CUTSCENE_FIRST + (index & 0xF))
|
||||
|
||||
typedef enum LinkAge {
|
||||
/* 0 */ LINK_AGE_ADULT,
|
||||
|
@ -408,6 +409,53 @@ typedef enum LinkAge {
|
|||
} LinkAge;
|
||||
|
||||
|
||||
// Usage in Map Select suggests that `gSaveContext.save.cutsceneIndex` was,
|
||||
// at one point in development, a variable related to the time.
|
||||
// This is further supported by debug strings showing that its original name was "day_time".
|
||||
// These macros exist for the rare cases in the codebase where `cutsceneIndex` is treated as a time value.
|
||||
// In practice, both values do not lead to a cutscene being played.
|
||||
// See `CS_INDEX_NONE` below for the more common usage of value 0x0000.
|
||||
#define CS_INDEX_NIGHT 0x0000
|
||||
#define CS_INDEX_DAY 0x8000
|
||||
|
||||
// Indicates that no scripted cutscene is playing (or should be played).
|
||||
// While this value overlaps with `CS_INDEX_NIGHT` defined above, it is not related to the time.
|
||||
// This is the more common interpretation of this value, as much of the codebase uses 0x0000 to mean "no cutscene"
|
||||
// except for Map Select.
|
||||
#define CS_INDEX_NONE 0x0000
|
||||
|
||||
// Values 0xFFF0-0xFFFF indicate that a cutscene script should be played.
|
||||
// If the value of `nextCutsceneIndex` is 0xFFF0-0xFFFF on scene load,
|
||||
// `Play_Init` will copy the value to `gSaveContext.cutsceneIndex`, load a
|
||||
// corresponding scene layer and start the scripted cutscene in the scene layer
|
||||
// (except for the value 0xFFFD, which is special-cased to do nothing in `Play_Init`).
|
||||
// It loads layer 4 for 0xFFF0, layer 5 for 0xFFF1, and so on.
|
||||
//
|
||||
// 0xFFFD is used by the cutscene system to indicate a scripted cutscene has been triggered.
|
||||
// This is why `Play_Init` ignores that value, so that if the cutscene is interrupted
|
||||
// by a new play state load (e.g. if the player falls out of bounds), it does not then
|
||||
// try to wrongly load a cutscene layer.
|
||||
#define CS_INDEX_0 0xFFF0
|
||||
#define CS_INDEX_1 0xFFF1
|
||||
#define CS_INDEX_2 0xFFF2
|
||||
#define CS_INDEX_3 0xFFF3
|
||||
#define CS_INDEX_4 0xFFF4
|
||||
#define CS_INDEX_5 0xFFF5
|
||||
#define CS_INDEX_6 0xFFF6
|
||||
#define CS_INDEX_7 0xFFF7
|
||||
#define CS_INDEX_8 0xFFF8
|
||||
#define CS_INDEX_9 0xFFF9
|
||||
#define CS_INDEX_A 0xFFFA
|
||||
#define CS_INDEX_B 0xFFFB
|
||||
#define CS_INDEX_C 0xFFFC
|
||||
#define CS_INDEX_D 0xFFFD // does not load a cutscene scene layer (see above)
|
||||
#define CS_INDEX_E 0xFFFE
|
||||
#define CS_INDEX_F 0xFFFF
|
||||
|
||||
// Sentinel value for `nextCutsceneIndex` to indicate that no cutscene should be played next.
|
||||
#define NEXT_CS_INDEX_NONE 0xFFEF
|
||||
|
||||
|
||||
#define LINK_IS_ADULT (gSaveContext.save.linkAge == LINK_AGE_ADULT)
|
||||
#define LINK_IS_CHILD (gSaveContext.save.linkAge == LINK_AGE_CHILD)
|
||||
|
||||
|
|
11
spec/spec
11
spec/spec
|
@ -1707,7 +1707,8 @@ beginseg
|
|||
name "object_yukabyun"
|
||||
compress
|
||||
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
|
||||
endseg
|
||||
|
||||
|
@ -1923,7 +1924,7 @@ beginseg
|
|||
name "object_vase"
|
||||
compress
|
||||
romalign 0x1000
|
||||
include "$(BUILD_DIR)/assets/objects/object_vase/object_vase.o"
|
||||
include "$(BUILD_DIR)/assets/objects/object_vase/gUnusedVaseDL.o"
|
||||
number 6
|
||||
endseg
|
||||
|
||||
|
@ -2883,7 +2884,8 @@ beginseg
|
|||
name "object_umajump"
|
||||
compress
|
||||
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
|
||||
endseg
|
||||
|
||||
|
@ -3555,7 +3557,8 @@ beginseg
|
|||
name "object_zg"
|
||||
compress
|
||||
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
|
||||
endseg
|
||||
|
||||
|
|
|
@ -2167,7 +2167,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
|
|||
|
||||
if (CHECK_BTN_ALL(sPlay->state.input[1].press.button, BTN_CRIGHT)) {
|
||||
gUseCutsceneCam = false;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFFD;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
sDebugCamAnim.curFrame = 0.0f;
|
||||
sDebugCamAnim.keyframe = 0;
|
||||
|
|
|
@ -35,8 +35,8 @@
|
|||
#include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
|
||||
#include "assets/objects/object_bdoor/object_bdoor.h"
|
||||
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:0" \
|
||||
"ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||
"ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
|
||||
|
||||
CollisionPoly* sCurCeilingPoly;
|
||||
s32 sCurCeilingBgId;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "player.h"
|
||||
#include "skin_matrix.h"
|
||||
|
||||
#pragma increment_block_number "ntsc-1.0:144 ntsc-1.1:144 ntsc-1.2:144"
|
||||
#pragma increment_block_number "ntsc-1.0:136 ntsc-1.1:136 ntsc-1.2:136"
|
||||
|
||||
u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList);
|
||||
void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector);
|
||||
|
|
|
@ -3661,7 +3661,7 @@ s32 Camera_KeepOn3(Camera* camera) {
|
|||
}
|
||||
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||
"ique-cn:128 ntsc-1.0:79 ntsc-1.1:79 ntsc-1.2:79 pal-1.0:79 pal-1.1:79"
|
||||
"ique-cn:128 ntsc-1.0:73 ntsc-1.1:73 ntsc-1.2:73 pal-1.0:73 pal-1.1:73"
|
||||
|
||||
s32 Camera_KeepOn4(Camera* camera) {
|
||||
static Vec3f sAtTarget;
|
||||
|
@ -3698,12 +3698,12 @@ s32 Camera_KeepOn4(Camera* camera) {
|
|||
camera->play->view.unk_124 = camera->camId | 0x50;
|
||||
return 1;
|
||||
}
|
||||
rwData->unk_14 = *itemType;
|
||||
rwData->itemType = *itemType;
|
||||
camera->stateFlags &= ~CAM_STATE_LOCK_MODE;
|
||||
}
|
||||
|
||||
if (rwData->unk_14 != *itemType) {
|
||||
PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->unk_14, *itemType);
|
||||
if (rwData->itemType != *itemType) {
|
||||
PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->itemType, *itemType);
|
||||
camera->animState = 20;
|
||||
camera->stateFlags |= CAM_STATE_LOCK_MODE;
|
||||
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;
|
||||
f32 yNormal = 1.0f + t - (68.0f / playerHeight * t);
|
||||
|
||||
roData->unk_00 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
|
||||
roData->unk_04 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
|
||||
roData->unk_08 = GET_NEXT_RO_DATA(values);
|
||||
roData->unk_0C = GET_NEXT_RO_DATA(values);
|
||||
roData->unk_10 = GET_NEXT_RO_DATA(values);
|
||||
roData->unk_18 = GET_NEXT_RO_DATA(values);
|
||||
roData->yOffset = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
|
||||
roData->eyeDist = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
|
||||
roData->pitchTarget = GET_NEXT_RO_DATA(values);
|
||||
roData->yawTarget = GET_NEXT_RO_DATA(values);
|
||||
roData->atOffsetPlayerForwards = GET_NEXT_RO_DATA(values);
|
||||
roData->fovTarget = GET_NEXT_RO_DATA(values);
|
||||
roData->interfaceField = GET_NEXT_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);
|
||||
switch (*itemType) {
|
||||
case CAM_ITEM_TYPE_1:
|
||||
roData->unk_00 = playerHeight * -0.6f * yNormal;
|
||||
roData->unk_04 = playerHeight * 2.0f * yNormal;
|
||||
roData->unk_08 = 10.0f;
|
||||
roData->yOffset = playerHeight * -0.6f * yNormal;
|
||||
roData->eyeDist = playerHeight * 2.0f * yNormal;
|
||||
roData->pitchTarget = 10.0f;
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_2:
|
||||
case CAM_ITEM_TYPE_3:
|
||||
roData->unk_08 = -20.0f;
|
||||
roData->unk_18 = 80.0f;
|
||||
roData->pitchTarget = -20.0f;
|
||||
roData->fovTarget = 80.0f;
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_4:
|
||||
roData->unk_00 = playerHeight * -0.2f * yNormal;
|
||||
roData->unk_08 = 25.0f;
|
||||
roData->yOffset = playerHeight * -0.2f * yNormal;
|
||||
roData->pitchTarget = 25.0f;
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_8:
|
||||
roData->unk_00 = playerHeight * -0.2f * yNormal;
|
||||
roData->unk_04 = playerHeight * 0.8f * yNormal;
|
||||
roData->unk_08 = 50.0f;
|
||||
roData->unk_18 = 70.0f;
|
||||
roData->yOffset = playerHeight * -0.2f * yNormal;
|
||||
roData->eyeDist = playerHeight * 0.8f * yNormal;
|
||||
roData->pitchTarget = 50.0f;
|
||||
roData->fovTarget = 70.0f;
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_9:
|
||||
roData->unk_00 = playerHeight * 0.1f * yNormal;
|
||||
roData->unk_04 = playerHeight * 0.5f * yNormal;
|
||||
roData->unk_08 = -20.0f;
|
||||
roData->unk_0C = 0.0f;
|
||||
roData->yOffset = playerHeight * 0.1f * yNormal;
|
||||
roData->eyeDist = playerHeight * 0.5f * yNormal;
|
||||
roData->pitchTarget = -20.0f;
|
||||
roData->yawTarget = 0.0f;
|
||||
roData->interfaceField =
|
||||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_6);
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_5:
|
||||
roData->unk_00 = playerHeight * -0.4f * yNormal;
|
||||
roData->unk_08 = -10.0f;
|
||||
roData->unk_0C = 45.0f;
|
||||
roData->yOffset = playerHeight * -0.4f * yNormal;
|
||||
roData->pitchTarget = -10.0f;
|
||||
roData->yawTarget = 45.0f;
|
||||
roData->interfaceField =
|
||||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON4_FLAG_1);
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_10:
|
||||
roData->unk_00 = playerHeight * -0.5f * yNormal;
|
||||
roData->unk_04 = playerHeight * 1.5f * yNormal;
|
||||
roData->unk_08 = -15.0f;
|
||||
roData->unk_0C = 175.0f;
|
||||
roData->unk_18 = 70.0f;
|
||||
roData->yOffset = playerHeight * -0.5f * yNormal;
|
||||
roData->eyeDist = playerHeight * 1.5f * yNormal;
|
||||
roData->pitchTarget = -15.0f;
|
||||
roData->yawTarget = 175.0f;
|
||||
roData->fovTarget = 70.0f;
|
||||
roData->interfaceField =
|
||||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_1);
|
||||
roData->unk_1E = 0x3C;
|
||||
roData->initTimer = 0x3C;
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_12:
|
||||
roData->unk_00 = playerHeight * -0.6f * yNormal;
|
||||
roData->unk_04 = playerHeight * 1.6f * yNormal;
|
||||
roData->unk_08 = -2.0f;
|
||||
roData->unk_0C = 120.0f;
|
||||
roData->unk_10 = player->stateFlags1 & PLAYER_STATE1_27 ? 0.0f : 20.0f;
|
||||
roData->yOffset = playerHeight * -0.6f * yNormal;
|
||||
roData->eyeDist = playerHeight * 1.6f * yNormal;
|
||||
roData->pitchTarget = -2.0f;
|
||||
roData->yawTarget = 120.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,
|
||||
KEEPON4_FLAG_4 | KEEPON4_FLAG_1);
|
||||
roData->unk_1E = 0x1E;
|
||||
roData->unk_18 = 50.0f;
|
||||
roData->initTimer = 0x1E;
|
||||
roData->fovTarget = 50.0f;
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_90:
|
||||
roData->unk_00 = playerHeight * -0.3f * yNormal;
|
||||
roData->unk_18 = 45.0f;
|
||||
roData->yOffset = playerHeight * -0.3f * yNormal;
|
||||
roData->fovTarget = 45.0f;
|
||||
roData->interfaceField =
|
||||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1);
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_91:
|
||||
roData->unk_00 = playerHeight * -0.1f * yNormal;
|
||||
roData->unk_04 = playerHeight * 1.5f * yNormal;
|
||||
roData->unk_08 = -3.0f;
|
||||
roData->unk_0C = 10.0f;
|
||||
roData->unk_18 = 55.0f;
|
||||
roData->yOffset = playerHeight * -0.1f * yNormal;
|
||||
roData->eyeDist = playerHeight * 1.5f * yNormal;
|
||||
roData->pitchTarget = -3.0f;
|
||||
roData->yawTarget = 10.0f;
|
||||
roData->fovTarget = 55.0f;
|
||||
roData->interfaceField =
|
||||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3);
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_81:
|
||||
roData->unk_00 = playerHeight * -0.3f * yNormal;
|
||||
roData->unk_04 = playerHeight * 1.5f * yNormal;
|
||||
roData->unk_08 = 2.0f;
|
||||
roData->unk_18 = 45.0f;
|
||||
roData->unk_0C = 20.0f;
|
||||
roData->unk_10 = 20.0f;
|
||||
roData->yOffset = playerHeight * -0.3f * yNormal;
|
||||
roData->eyeDist = playerHeight * 1.5f * yNormal;
|
||||
roData->pitchTarget = 2.0f;
|
||||
roData->fovTarget = 45.0f;
|
||||
roData->yawTarget = 20.0f;
|
||||
roData->atOffsetPlayerForwards = 20.0f;
|
||||
roData->interfaceField =
|
||||
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_7);
|
||||
roData->unk_1E = 0x1E;
|
||||
roData->initTimer = 0x1E;
|
||||
break;
|
||||
|
||||
case CAM_ITEM_TYPE_11:
|
||||
roData->unk_00 = playerHeight * -0.19f * yNormal;
|
||||
roData->unk_04 = playerHeight * 0.7f * yNormal;
|
||||
roData->unk_0C = 130.0f;
|
||||
roData->unk_10 = 10.0f;
|
||||
roData->yOffset = playerHeight * -0.19f * yNormal;
|
||||
roData->eyeDist = playerHeight * 0.7f * yNormal;
|
||||
roData->yawTarget = 130.0f;
|
||||
roData->atOffsetPlayerForwards = 10.0f;
|
||||
roData->interfaceField = CAM_INTERFACE_FIELD(
|
||||
CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_5 | KEEPON4_FLAG_1);
|
||||
break;
|
||||
|
@ -3844,10 +3844,10 @@ s32 Camera_KeepOn4(Camera* camera) {
|
|||
sAtTarget = playerPosRot->pos;
|
||||
sAtTarget.y += playerHeight;
|
||||
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;
|
||||
} else {
|
||||
sAtTarget.y += roData->unk_00;
|
||||
sAtTarget.y += roData->yOffset;
|
||||
}
|
||||
|
||||
lineOCCheckNumExclusions = 0;
|
||||
|
@ -3858,38 +3858,38 @@ s32 Camera_KeepOn4(Camera* camera) {
|
|||
lineOCCheckNumExclusions++;
|
||||
func_80043ABC(camera);
|
||||
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;
|
||||
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
|
||||
? (s16)(playerPosRot->rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
|
||||
: (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->yawTarget);
|
||||
} else if (roData->interfaceField & KEEPON4_FLAG_2) {
|
||||
atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08);
|
||||
atToEyeBaseYaw = CAM_DEG_TO_BINANG(roData->unk_0C);
|
||||
atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
|
||||
atToEyeBaseYaw = CAM_DEG_TO_BINANG(roData->yawTarget);
|
||||
} else if ((roData->interfaceField & KEEPON4_FLAG_3) && camera->target != NULL) {
|
||||
PosRot sp60;
|
||||
|
||||
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
|
||||
? (s16)(sp60.rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
|
||||
: (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->yawTarget);
|
||||
lineOCCheckExclusions[1] = camera->target;
|
||||
lineOCCheckNumExclusions++;
|
||||
} else if ((roData->interfaceField & KEEPON4_FLAG_7) && camera->target != NULL) {
|
||||
PosRot sp4C;
|
||||
|
||||
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);
|
||||
atToEyeBaseYaw = ((s16)(sp9E - atToEyeNextDir.yaw) > 0) ? sp9E + CAM_DEG_TO_BINANG(roData->unk_0C)
|
||||
: 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->yawTarget);
|
||||
lineOCCheckExclusions[1] = camera->target;
|
||||
lineOCCheckNumExclusions++;
|
||||
} 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;
|
||||
} else {
|
||||
atToEyeBasePitch = atToEyeNextDir.pitch;
|
||||
|
@ -3898,7 +3898,7 @@ s32 Camera_KeepOn4(Camera* camera) {
|
|||
|
||||
vecGeo.pitch = atToEyeBasePitch;
|
||||
vecGeo.yaw = atToEyeBaseYaw;
|
||||
vecGeo.r = roData->unk_04;
|
||||
vecGeo.r = roData->eyeDist;
|
||||
sEyeCandidate = Camera_AddVecGeoToVec3f(&sAtTarget, &vecGeo);
|
||||
if (!(roData->interfaceField & KEEPON4_FLAG_0)) {
|
||||
angleCnt = ARRAY_COUNT(sCamCheckAroundOffsetsYaw);
|
||||
|
@ -3916,10 +3916,10 @@ s32 Camera_KeepOn4(Camera* camera) {
|
|||
PRINTF("camera: item: BG&collision check %d time(s)\n", i);
|
||||
#endif
|
||||
}
|
||||
rwData->unk_04 = (s16)(vecGeo.pitch - atToEyeNextDir.pitch) / (f32)rwData->unk_10;
|
||||
rwData->unk_00 = (s16)(vecGeo.yaw - atToEyeNextDir.yaw) / (f32)rwData->unk_10;
|
||||
rwData->unk_0C = atToEyeNextDir.yaw;
|
||||
rwData->unk_0E = atToEyeNextDir.pitch;
|
||||
rwData->atToEyeTargetStepPitch = (s16)(vecGeo.pitch - atToEyeNextDir.pitch) / (f32)rwData->animTimer;
|
||||
rwData->atToEyeTargetStepYaw = (s16)(vecGeo.yaw - atToEyeNextDir.yaw) / (f32)rwData->animTimer;
|
||||
rwData->atToEyeTargetYaw = atToEyeNextDir.yaw;
|
||||
rwData->atToEyeTargetPitch = atToEyeNextDir.pitch;
|
||||
camera->animState++;
|
||||
rwData->unk_12 = 1;
|
||||
break;
|
||||
|
@ -3932,20 +3932,20 @@ s32 Camera_KeepOn4(Camera* camera) {
|
|||
camera->yOffsetUpdateRate = 0.25f;
|
||||
camera->atLERPStepScale = 0.75f;
|
||||
Camera_LERPCeilVec3f(&sAtTarget, at, 0.5f, 0.5f, 0.2f);
|
||||
if (roData->unk_10 != 0.0f) {
|
||||
vecGeo.r = roData->unk_10;
|
||||
if (roData->atOffsetPlayerForwards != 0.0f) {
|
||||
vecGeo.r = roData->atOffsetPlayerForwards;
|
||||
vecGeo.pitch = 0;
|
||||
vecGeo.yaw = playerPosRot->rot.y;
|
||||
*at = Camera_AddVecGeoToVec3f(at, &vecGeo);
|
||||
}
|
||||
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;
|
||||
if (rwData->unk_10 != 0) {
|
||||
if (rwData->animTimer != 0) {
|
||||
camera->stateFlags |= CAM_STATE_LOCK_MODE;
|
||||
rwData->unk_0C += (s16)rwData->unk_00;
|
||||
rwData->unk_0E += (s16)rwData->unk_04;
|
||||
rwData->unk_10--;
|
||||
rwData->atToEyeTargetYaw += (s16)rwData->atToEyeTargetStepYaw;
|
||||
rwData->atToEyeTargetPitch += (s16)rwData->atToEyeTargetStepPitch;
|
||||
rwData->animTimer--;
|
||||
} else if (roData->interfaceField & KEEPON4_FLAG_4) {
|
||||
camera->stateFlags |= (CAM_STATE_CAM_FUNC_FINISH | CAM_STATE_BLOCK_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.pitch = Camera_LERPCeilS(rwData->unk_0E, atToEyeNextDir.pitch, roData->unk_14, 4);
|
||||
vecGeo.yaw = Camera_LERPCeilS(rwData->atToEyeTargetYaw, atToEyeNextDir.yaw, roData->unk_14, 4);
|
||||
vecGeo.pitch = Camera_LERPCeilS(rwData->atToEyeTargetPitch, atToEyeNextDir.pitch, roData->unk_14, 4);
|
||||
*eyeNext = Camera_AddVecGeoToVec3f(at, &vecGeo);
|
||||
*eye = *eyeNext;
|
||||
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);
|
||||
//! @bug Missing return, but the return value is not used.
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ s16 sCamDataRegsInit[CAM_DATA_MAX] = {
|
|||
0, // CAM_DATA_AT_OFFSET_X
|
||||
0, // CAM_DATA_AT_OFFSET_Y
|
||||
0, // CAM_DATA_AT_OFFSET_Z
|
||||
6, // CAM_DATA_UNK_22
|
||||
6, // CAM_DATA_INIT_TIMER
|
||||
60, // CAM_DATA_UNK_23
|
||||
30, // CAM_DATA_FOV_SCALE
|
||||
0, // CAM_DATA_YAW_SCALE
|
||||
|
|
|
@ -172,7 +172,7 @@ s32 Collider_DestroyElementDamageInfoAT(PlayState* play, ColliderElementDamageIn
|
|||
s32 Collider_SetElementDamageInfoAT(PlayState* play, ColliderElementDamageInfoAT* dest,
|
||||
ColliderElementDamageInfoAT* src) {
|
||||
dest->dmgFlags = src->dmgFlags;
|
||||
dest->effect = src->effect;
|
||||
dest->hitSpecialEffect = src->hitSpecialEffect;
|
||||
dest->damage = src->damage;
|
||||
return true;
|
||||
}
|
||||
|
@ -194,7 +194,7 @@ s32 Collider_DestroyElementDamageInfoAC(PlayState* play, ColliderElementDamageIn
|
|||
s32 Collider_SetElementDamageInfoAC(PlayState* play, ColliderElementDamageInfoAC* acDmgInfo,
|
||||
ColliderElementDamageInfoACInit* init) {
|
||||
acDmgInfo->dmgFlags = init->dmgFlags;
|
||||
acDmgInfo->effect = init->effect;
|
||||
acDmgInfo->hitBacklash = init->hitBacklash;
|
||||
acDmgInfo->defense = init->defense;
|
||||
return true;
|
||||
}
|
||||
|
@ -1726,7 +1726,7 @@ s32 CollisionCheck_SetATvsAC(PlayState* play, Collider* atCol, ColliderElement*
|
|||
atElem->atHitElem = acElem;
|
||||
atElem->atElemFlags |= ATELEM_HIT;
|
||||
if (atCol->actor != NULL) {
|
||||
atCol->actor->colChkInfo.atHitEffect = acElem->acDmgInfo.effect;
|
||||
atCol->actor->colChkInfo.atHitBacklash = acElem->acDmgInfo.hitBacklash;
|
||||
}
|
||||
}
|
||||
acCol->acFlags |= AC_HIT;
|
||||
|
@ -1735,7 +1735,7 @@ s32 CollisionCheck_SetATvsAC(PlayState* play, Collider* atCol, ColliderElement*
|
|||
acElem->acHitElem = atElem;
|
||||
acElem->acElemFlags |= ACELEM_HIT;
|
||||
if (acCol->actor != NULL) {
|
||||
acCol->actor->colChkInfo.acHitEffect = atElem->atDmgInfo.effect;
|
||||
acCol->actor->colChkInfo.acHitSpecialEffect = atElem->atDmgInfo.hitSpecialEffect;
|
||||
}
|
||||
acElem->acDmgInfo.hitPos.x = hitPos->x;
|
||||
acElem->acDmgInfo.hitPos.y = hitPos->y;
|
||||
|
@ -3015,8 +3015,8 @@ void CollisionCheck_InitInfo(CollisionCheckInfo* info) {
|
|||
void CollisionCheck_ResetDamage(CollisionCheckInfo* info) {
|
||||
info->damage = 0;
|
||||
info->damageReaction = 0;
|
||||
info->atHitEffect = 0;
|
||||
info->acHitEffect = 0;
|
||||
info->atHitBacklash = HIT_BACKLASH_NONE;
|
||||
info->acHitSpecialEffect = HIT_SPECIAL_EFFECT_NONE;
|
||||
info->displacement.x = info->displacement.y = info->displacement.z = 0.0f;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ void SaveContext_Init(void) {
|
|||
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
|
||||
gSaveContext.natureAmbienceId = NATURE_ID_DISABLED;
|
||||
gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFEF;
|
||||
gSaveContext.nextCutsceneIndex = NEXT_CS_INDEX_NONE;
|
||||
gSaveContext.cutsceneTrigger = 0;
|
||||
gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST;
|
||||
gSaveContext.nextDayTime = NEXT_TIME_NONE;
|
||||
|
|
|
@ -202,7 +202,7 @@ void Cutscene_StopManual(PlayState* play, CutsceneContext* csCtx) {
|
|||
}
|
||||
|
||||
void Cutscene_UpdateManual(PlayState* play, CutsceneContext* csCtx) {
|
||||
if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
|
||||
if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) {
|
||||
sManualCutsceneHandlers[csCtx->state](play, csCtx);
|
||||
}
|
||||
}
|
||||
|
@ -214,14 +214,14 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
|
|||
|
||||
if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER) {
|
||||
gUseCutsceneCam = false;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFFD;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
}
|
||||
|
||||
if (CHECK_BTN_ALL(input->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER &&
|
||||
!gDebugCamEnabled) {
|
||||
gUseCutsceneCam = true;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFFD;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
}
|
||||
}
|
||||
|
@ -233,11 +233,11 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
|
|||
|
||||
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE)) {
|
||||
PRINTF(T("\nデモ開始要求 発令!", "\nDemo start request issued!"));
|
||||
gSaveContext.save.cutsceneIndex = 0xFFFD;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
}
|
||||
|
||||
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
|
||||
if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
|
||||
Cutscene_SetupScripted(play, csCtx);
|
||||
sScriptedCutsceneHandlers[csCtx->state](play, csCtx);
|
||||
}
|
||||
|
@ -616,54 +616,54 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
gSaveContext.forceRisingButtonAlphas = true;
|
||||
}
|
||||
|
||||
gSaveContext.save.cutsceneIndex = 0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
|
||||
|
||||
switch (cmd->destination) {
|
||||
case CS_DEST_CUTSCENE_MAP_GANON_HORSE:
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_CUTSCENE_MAP_THREE_GODDESSES:
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_GERUDO_VALLEY_DIN_PART_1:
|
||||
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_DEATH_MOUNTAIN_TRAIL_NAYRU:
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_KOKIRI_FOREST_FARORE:
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_CUTSCENE_MAP_TRIFORCE_CREATION:
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD:
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_INSTANT;
|
||||
break;
|
||||
|
@ -676,7 +676,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
SET_EVENTCHKINF(EVENTCHKINF_45);
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF3;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
|
||||
play->transitionType = TRANS_TYPE_INSTANT;
|
||||
} else {
|
||||
if (!IS_CUTSCENE_LAYER) {
|
||||
|
@ -696,21 +696,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
|
||||
case CS_DEST_GERUDO_VALLEY_DIN_PART_2:
|
||||
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FILL_BROWN;
|
||||
break;
|
||||
|
||||
case CS_DEST_LINKS_HOUSE_INTRO:
|
||||
play->nextEntranceIndex = ENTR_LINKS_HOUSE_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_KOKIRI_FOREST_INTRO:
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF3;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
@ -737,21 +737,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED:
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF4;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED:
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF5;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED:
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF6;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
|
@ -769,13 +769,13 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
gSaveContext.save.cutsceneIndex = 0x8000;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_DAY;
|
||||
break;
|
||||
|
||||
case CS_DEST_LAKE_HYLIA_WATER_RESTORED:
|
||||
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
|
@ -783,14 +783,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
Item_Give(play, ITEM_SONG_REQUIEM);
|
||||
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_CUTSCENE_MAP_GANONDORF_DEFEATED_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF8;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_8;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
|
@ -804,28 +804,28 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED_2:
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF4;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED_2:
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF5;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED_2:
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF6;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
|
@ -855,7 +855,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionType = TRANS_TYPE_INSTANT;
|
||||
break;
|
||||
|
||||
|
@ -868,28 +868,28 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_CUTSCENE_MAP_GANONDORF_FROM_MASTER_SWORD:
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF3;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
||||
case CS_DEST_HYRULE_FIELD_INTRO_DREAM:
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
|
||||
case CS_DEST_CUTSCENE_MAP_SHEIKAH_LEGEND:
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF4;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
|
||||
case CS_DEST_TEMPLE_OF_TIME_ZELDA_REVEAL:
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF9;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_9;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
|
||||
|
@ -897,7 +897,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFFA;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_A;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
|
||||
|
@ -910,7 +910,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_KAKARIKO_VILLAGE_DRAIN_WELL:
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
|
||||
|
@ -940,7 +940,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
SET_EVENTCHKINF(EVENTCHKINF_54);
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
break;
|
||||
|
||||
|
@ -965,14 +965,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
|
||||
case CS_DEST_HYRULE_FIELD_FROM_ZELDAS_COURTYARD:
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF8;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_8;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_CIRCLE(TCA_NORMAL, TCC_WHITE, TCS_SLOW);
|
||||
break;
|
||||
|
||||
case CS_DEST_TEMPLE_OF_TIME_SONG_OF_TIME:
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF7;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_7;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_INSTANT;
|
||||
break;
|
||||
|
@ -990,56 +990,56 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
#endif
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_GERUDO_FORTRESS_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_KAKARIKO_VILLAGE_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF4;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_1:
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF3;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_GORON_CITY_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_GORON_CITY_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_LAKE_HYLIA_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_ZORAS_FOUNTAIN_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_ZORAS_DOMAIN_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_ZORAS_DOMAIN_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
@ -1047,21 +1047,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_KOKIRI_FOREST_CREDITS_PART_1:
|
||||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF6;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_KOKIRI_FOREST_CREDITS_PART_2:
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF7;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_7;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_HYRULE_FIELD_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF5;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
@ -1069,7 +1069,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_LON_LON_RANCH_CREDITS_PART_1_ALT:
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
@ -1089,7 +1089,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_CUTSCENE_MAP_DEKU_SPROUT_PART_2:
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF5;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
|
@ -1102,7 +1102,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_2:
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF4;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
@ -1115,14 +1115,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_ZELDAS_COURTYARD_CREDITS:
|
||||
play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
@ -1131,14 +1131,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_LON_LON_RANCH_CREDITS_PART_2:
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF3;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
@ -1147,7 +1147,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF4;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_4;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
|
@ -1155,7 +1155,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF5;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_5;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
|
@ -1163,14 +1163,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF6;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
case CS_DEST_LON_LON_RANCH_CREDITS_PART_5:
|
||||
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF7;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_7;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
|
@ -1210,7 +1210,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
GET_EVENTCHKINF(EVENTCHKINF_4A)) {
|
||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF3;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
} else {
|
||||
switch (gSaveContext.sceneLayer) {
|
||||
|
@ -1229,7 +1229,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case 10:
|
||||
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
}
|
||||
|
@ -1240,7 +1240,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
|
||||
} else {
|
||||
SET_EVENTCHKINF(EVENTCHKINF_C8);
|
||||
|
@ -1255,7 +1255,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
|
||||
} else {
|
||||
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
|
||||
|
@ -1281,7 +1281,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
|
||||
case CS_DEST_KOKIRI_FOREST_FROM_CHAMBER_OF_SAGES:
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF8;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_8;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
|
||||
|
@ -1302,7 +1302,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_HYRULE_FIELD_TITLE_SCREEN:
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF3;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_3;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
|
@ -1311,7 +1311,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case TITLE_DEMO_SPIRIT_TEMPLE:
|
||||
play->nextEntranceIndex = ENTR_SPIRIT_TEMPLE_BOSS_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_2;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
sTitleDemoDestination++;
|
||||
break;
|
||||
|
@ -1319,7 +1319,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case TITLE_DEMO_DEATH_MOUNTAIN_CRATER:
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
sTitleDemoDestination++;
|
||||
break;
|
||||
|
@ -1327,7 +1327,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case TITLE_DEMO_GANONDORF_HORSE:
|
||||
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF6;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_6;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
sTitleDemoDestination = TITLE_DEMO_SPIRIT_TEMPLE;
|
||||
break;
|
||||
|
@ -1337,7 +1337,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
case CS_DEST_GRAVEYARD_SUNS_SONG_PART_2:
|
||||
play->nextEntranceIndex = ENTR_GRAVEYARD_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||
break;
|
||||
|
||||
|
@ -1390,10 +1390,16 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gTowerBarrierCs);
|
||||
play->csCtx.curFrame = 0;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFFF;
|
||||
// Force cutsceneIndex to CS_INDEX_F so that CS_STATE_STOP is handled by the "scripted" system's
|
||||
// CutsceneHandler_StopScript.
|
||||
// Otherwise, because cutsceneIndex is set to 0 above, CS_STATE_STOP would be handled by the
|
||||
// "manual" cutscene system's CutsceneHandler_StopManual, which does not terminate the cutscene
|
||||
// camera, resulting in a softlock.
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_F;
|
||||
csCtx->state = CS_STATE_STOP;
|
||||
} else {
|
||||
gSaveContext.save.cutsceneIndex = 0xFFFF;
|
||||
// Same as above
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_F;
|
||||
csCtx->state = CS_STATE_STOP;
|
||||
}
|
||||
break;
|
||||
|
@ -1430,7 +1436,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||
Audio_SetSfxBanksMute(0x6F);
|
||||
play->linkAgeOnLoad = LINK_AGE_ADULT;
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF7;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_7;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
break;
|
||||
|
@ -2237,7 +2243,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
|||
}
|
||||
|
||||
void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) {
|
||||
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
|
||||
if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
|
||||
#if DEBUG_FEATURES
|
||||
if (BREG(0) != 0) {
|
||||
Gfx* displayList;
|
||||
|
@ -2290,7 +2296,7 @@ void CutsceneHandler_StopScript(PlayState* play, CutsceneContext* csCtx) {
|
|||
|
||||
PRINTF(T("\n\n\n\n\nやっぱりここかいな", "\n\n\n\n\nThis is it after all"));
|
||||
|
||||
gSaveContext.save.cutsceneIndex = 0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
|
||||
gSaveContext.gameMode = GAMEMODE_NORMAL;
|
||||
|
||||
if (gUseCutsceneCam) {
|
||||
|
@ -2316,10 +2322,10 @@ void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx) {
|
|||
u8 i;
|
||||
|
||||
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE) && !Player_InCsMode(play)) {
|
||||
gSaveContext.save.cutsceneIndex = 0xFFFD;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_D;
|
||||
}
|
||||
|
||||
if ((gSaveContext.save.cutsceneIndex >= 0xFFF0) && (csCtx->state == CS_STATE_IDLE)) {
|
||||
if ((gSaveContext.save.cutsceneIndex >= CS_INDEX_0) && (csCtx->state == CS_STATE_IDLE)) {
|
||||
CutsceneFlags_Unset(play, 0);
|
||||
|
||||
sCurTextId = 0;
|
||||
|
@ -2401,7 +2407,7 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) {
|
|||
|
||||
if ((gSaveContext.save.entranceIndex == entranceCutscene->entrance) &&
|
||||
(!Flags_GetEventChkInf(entranceCutscene->flag) || (entranceCutscene->flag == EVENTCHKINF_EPONA_OBTAINED)) &&
|
||||
(gSaveContext.save.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.save.linkAge == requiredAge) &&
|
||||
(gSaveContext.save.cutsceneIndex < CS_INDEX_0) && ((u8)gSaveContext.save.linkAge == requiredAge) &&
|
||||
(gSaveContext.respawnFlag <= 0)) {
|
||||
Flags_SetEventChkInf(entranceCutscene->flag);
|
||||
Cutscene_SetScript(play, entranceCutscene->script);
|
||||
|
@ -2416,32 +2422,32 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
|
|||
PRINTF("\ngame_info.mode=[%d] restart_flag", ((void)0, gSaveContext.respawnFlag));
|
||||
|
||||
if ((gSaveContext.gameMode == GAMEMODE_NORMAL) && (gSaveContext.respawnFlag <= 0) &&
|
||||
(gSaveContext.save.cutsceneIndex < 0xFFF0)) {
|
||||
(gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
|
||||
if ((gSaveContext.save.entranceIndex == ENTR_DESERT_COLOSSUS_1) && !Flags_GetEventChkInf(EVENTCHKINF_AC)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_AC);
|
||||
gSaveContext.save.entranceIndex = ENTR_DESERT_COLOSSUS_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
} else if ((gSaveContext.save.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) && LINK_IS_ADULT &&
|
||||
GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) &&
|
||||
GET_EVENTCHKINF(EVENTCHKINF_4A) && !Flags_GetEventChkInf(EVENTCHKINF_AA)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_AA);
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
} else if ((gSaveContext.save.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_C1);
|
||||
Item_Give(play, ITEM_OCARINA_FAIRY);
|
||||
gSaveContext.save.entranceIndex = ENTR_LOST_WOODS_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
} else if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
|
||||
LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_C4) &&
|
||||
(gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_TEMPLE_OF_TIME)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_C4);
|
||||
gSaveContext.save.entranceIndex = ENTR_TEMPLE_OF_TIME_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF8;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_8;
|
||||
} else if (!Flags_GetEventChkInf(EVENTCHKINF_C7) &&
|
||||
(gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_GANON_BOSS)) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_C7);
|
||||
gSaveContext.save.entranceIndex = ENTR_GANON_BOSS_0;
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -164,15 +164,15 @@ typedef struct HorseCutsceneSpawn {
|
|||
|
||||
void Horse_SetupInCutscene(PlayState* play, Player* player) {
|
||||
static HorseCutsceneSpawn horseSpawns[] = {
|
||||
{ SCENE_GERUDOS_FORTRESS, 0xFFF0, { 3600, 1413, 360 }, 0x8001, HORSE_PTYPE_HORSEBACK_ARCHERY },
|
||||
{ SCENE_LON_LON_RANCH, 0xFFF0, { -250, 1, -1580 }, 0x4000, HORSE_PTYPE_6 }, // Horse Race
|
||||
{ SCENE_LON_LON_RANCH, 0xFFF1, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_5 }, // Learned Epona's Song
|
||||
{ SCENE_LON_LON_RANCH, 0xFFF5, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_7 }, // Credits
|
||||
{ SCENE_HYRULE_FIELD, 0xFFF3, { -2961, 313, 7700 }, 0x0000, HORSE_PTYPE_7 }, // Title Screen
|
||||
{ SCENE_HYRULE_FIELD, 0xFFF4, { -1900, 313, 7015 }, 0x0000, HORSE_PTYPE_7 },
|
||||
{ SCENE_HYRULE_FIELD, 0xFFF5, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Credits
|
||||
{ SCENE_HYRULE_FIELD, 0xFFF6, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Unused. Hopping Lon Lon
|
||||
// Ranch North Gate
|
||||
{ SCENE_GERUDOS_FORTRESS, CS_INDEX_0, { 3600, 1413, 360 }, 0x8001, HORSE_PTYPE_HORSEBACK_ARCHERY },
|
||||
{ SCENE_LON_LON_RANCH, CS_INDEX_0, { -250, 1, -1580 }, 0x4000, HORSE_PTYPE_6 }, // Horse Race
|
||||
{ SCENE_LON_LON_RANCH, CS_INDEX_1, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_5 }, // Learned Epona's Song
|
||||
{ SCENE_LON_LON_RANCH, CS_INDEX_5, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_7 }, // Credits
|
||||
{ SCENE_HYRULE_FIELD, CS_INDEX_3, { -2961, 313, 7700 }, 0x0000, HORSE_PTYPE_7 }, // Title Screen
|
||||
{ SCENE_HYRULE_FIELD, CS_INDEX_4, { -1900, 313, 7015 }, 0x0000, HORSE_PTYPE_7 },
|
||||
{ SCENE_HYRULE_FIELD, CS_INDEX_5, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Credits
|
||||
{ SCENE_HYRULE_FIELD, CS_INDEX_6, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Unused. Hopping Lon Lon
|
||||
// Ranch North Gate
|
||||
};
|
||||
s32 pad;
|
||||
s32 i;
|
||||
|
@ -235,7 +235,7 @@ void Horse_SetupInCutscene(PlayState* play, Player* player) {
|
|||
(((void)0, gSaveContext.save.cutsceneIndex) == horseSpawns[i].cutsceneIndex)) {
|
||||
if (horseSpawns[i].type == HORSE_PTYPE_7) {
|
||||
if ((play->sceneId == SCENE_LON_LON_RANCH) &&
|
||||
(((void)0, gSaveContext.save.cutsceneIndex) == 0xFFF1)) {
|
||||
(((void)0, gSaveContext.save.cutsceneIndex) == CS_INDEX_1)) {
|
||||
horseSpawns[i].pos.x = player->actor.world.pos.x;
|
||||
horseSpawns[i].pos.y = player->actor.world.pos.y;
|
||||
horseSpawns[i].pos.z = player->actor.world.pos.z;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#pragma increment_block_number "gc-eu:80 gc-eu-mq:80 gc-jp:80 gc-jp-ce:80 gc-jp-mq:80 gc-us:80 gc-us-mq:80 ique-cn:64" \
|
||||
"ntsc-1.0:96 ntsc-1.1:96 ntsc-1.2:96 pal-1.0:96 pal-1.1:96"
|
||||
"ntsc-1.0:80 ntsc-1.1:80 ntsc-1.2:80 pal-1.0:80 pal-1.1:80"
|
||||
|
||||
#include "libu64/debug.h"
|
||||
#include "kaleido_manager.h"
|
||||
|
|
|
@ -72,9 +72,9 @@ void KaleidoSetup_Update(PlayState* play) {
|
|||
|
||||
if (!IS_PAUSED(pauseCtx) && play->gameOverCtx.state == GAMEOVER_INACTIVE &&
|
||||
play->transitionTrigger == TRANS_TRIGGER_OFF && play->transitionMode == TRANS_MODE_OFF &&
|
||||
gSaveContext.save.cutsceneIndex < 0xFFF0 && gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) &&
|
||||
play->shootingGalleryStatus <= 1 && gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY &&
|
||||
gSaveContext.magicState != MAGIC_STATE_FILL &&
|
||||
gSaveContext.save.cutsceneIndex < CS_INDEX_0 && gSaveContext.nextCutsceneIndex < CS_INDEX_0 &&
|
||||
!Play_InCsMode(play) && play->shootingGalleryStatus <= 1 &&
|
||||
gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY && gSaveContext.magicState != MAGIC_STATE_FILL &&
|
||||
(play->sceneId != SCENE_BOMBCHU_BOWLING_ALLEY || !Flags_GetSwitch(play, 0x38))) {
|
||||
|
||||
if (CHECK_BTN_ALL(input->cur.button, BTN_L) && CHECK_BTN_ALL(input->press.button, BTN_CUP)) {
|
||||
|
|
|
@ -2642,7 +2642,7 @@ void Environment_StopStormNatureAmbience(PlayState* play) {
|
|||
|
||||
void Environment_WarpSongLeave(PlayState* play) {
|
||||
gWeatherMode = WEATHER_MODE_CLEAR;
|
||||
gSaveContext.save.cutsceneIndex = 0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
|
||||
gSaveContext.respawnFlag = -3;
|
||||
play->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_RETURN].entranceIndex;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
|
||||
#include "assets/textures/parameter_static/parameter_static.h"
|
||||
|
||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:32" \
|
||||
"ntsc-1.1:32 ntsc-1.2:32 pal-1.0:0 pal-1.1:0"
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:16" \
|
||||
"ntsc-1.1:16 ntsc-1.2:16 pal-1.0:0 pal-1.1:0"
|
||||
|
||||
#if !PLATFORM_IQUE
|
||||
#define MSG_BUF_DECODED (msgCtx->msgBufDecoded)
|
||||
|
@ -4379,7 +4379,7 @@ void Message_Update(PlayState* play) {
|
|||
|
||||
if (msgCtx->textId != 0x2061 && msgCtx->textId != 0x2025 && msgCtx->textId != 0x208C &&
|
||||
((msgCtx->textId < 0x88D || msgCtx->textId >= 0x893) || msgCtx->choiceIndex != 0) &&
|
||||
(msgCtx->textId != 0x3055 && gSaveContext.save.cutsceneIndex < 0xFFF0)) {
|
||||
(msgCtx->textId != 0x3055 && gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
|
||||
PRINTF("=== day_time=%x ", ((void)0, gSaveContext.save.cutsceneIndex));
|
||||
if (play->activeCamId == CAM_ID_MAIN) {
|
||||
if (gSaveContext.prevHudVisibilityMode == HUD_VISIBILITY_NO_CHANGE ||
|
||||
|
|
|
@ -29,7 +29,8 @@
|
|||
#include "assets/textures/do_action_static/do_action_static.h"
|
||||
#include "assets/textures/icon_item_static/icon_item_static.h"
|
||||
|
||||
#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
|
||||
#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128 ntsc-1.0:128 ntsc-1.1:128" \
|
||||
"ntsc-1.2:128"
|
||||
|
||||
typedef struct RestrictionFlags {
|
||||
/* 0x00 */ u8 sceneId;
|
||||
|
@ -670,8 +671,8 @@ void func_80083108(PlayState* play) {
|
|||
s16 i;
|
||||
s16 sp28 = false;
|
||||
|
||||
if ((gSaveContext.save.cutsceneIndex < 0xFFF0) ||
|
||||
((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == 0xFFF0))) {
|
||||
if ((gSaveContext.save.cutsceneIndex < CS_INDEX_0) ||
|
||||
((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == CS_INDEX_0))) {
|
||||
gSaveContext.forceRisingButtonAlphas = false;
|
||||
|
||||
if ((player->stateFlags1 & PLAYER_STATE1_23) || (play->shootingGalleryStatus > 1) ||
|
||||
|
@ -3554,7 +3555,7 @@ void Interface_Draw(PlayState* play) {
|
|||
(Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT)) {
|
||||
// Trade quest timer reached 0
|
||||
sSubTimerStateTimer = 40;
|
||||
gSaveContext.save.cutsceneIndex = 0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
gSaveContext.subTimerState = SUBTIMER_STATE_OFF;
|
||||
|
@ -3884,7 +3885,7 @@ void Interface_Draw(PlayState* play) {
|
|||
(play->sceneId != SCENE_INSIDE_GANONS_CASTLE_COLLAPSE))) {
|
||||
sSubTimerStateTimer = 40;
|
||||
gSaveContext.subTimerState = SUBTIMER_STATE_RESPAWN;
|
||||
gSaveContext.save.cutsceneIndex = 0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
|
||||
Message_StartTextbox(play, 0x71B0, NULL);
|
||||
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_8);
|
||||
} else {
|
||||
|
|
|
@ -47,8 +47,8 @@
|
|||
#include "save.h"
|
||||
#include "vis.h"
|
||||
|
||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:224" \
|
||||
"ntsc-1.0:240 ntsc-1.1:240 ntsc-1.2:240 pal-1.0:240 pal-1.1:240"
|
||||
#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \
|
||||
"ique-cn:224 ntsc-1.0:240 ntsc-1.1:240 ntsc-1.2:240 pal-1.0:240 pal-1.1:240"
|
||||
|
||||
TransitionTile gTransitionTile;
|
||||
s32 gTransitionTileState;
|
||||
|
@ -93,7 +93,7 @@ void Play_SetViewpoint(PlayState* this, s16 viewpoint) {
|
|||
|
||||
this->viewpoint = viewpoint;
|
||||
|
||||
if ((R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) {
|
||||
if ((R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
|
||||
// Play a sfx when the player toggles the camera
|
||||
SFX_PLAY_CENTERED((viewpoint == VIEWPOINT_LOCKED) ? NA_SE_SY_CAMERA_ZOOM_DOWN : NA_SE_SY_CAMERA_ZOOM_UP);
|
||||
}
|
||||
|
@ -350,13 +350,13 @@ void Play_Init(GameState* thisx) {
|
|||
AnimTaskQueue_Reset(&this->animTaskQueue);
|
||||
Cutscene_InitContext(this, &this->csCtx);
|
||||
|
||||
if (gSaveContext.nextCutsceneIndex != 0xFFEF) {
|
||||
if (gSaveContext.nextCutsceneIndex != NEXT_CS_INDEX_NONE) {
|
||||
gSaveContext.save.cutsceneIndex = gSaveContext.nextCutsceneIndex;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFEF;
|
||||
gSaveContext.nextCutsceneIndex = NEXT_CS_INDEX_NONE;
|
||||
}
|
||||
|
||||
if (gSaveContext.save.cutsceneIndex == 0xFFFD) {
|
||||
gSaveContext.save.cutsceneIndex = 0;
|
||||
if (gSaveContext.save.cutsceneIndex == CS_INDEX_D) {
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
|
||||
if (gSaveContext.nextDayTime != NEXT_TIME_NONE) {
|
||||
|
@ -372,10 +372,10 @@ void Play_Init(GameState* thisx) {
|
|||
|
||||
Cutscene_HandleConditionalTriggers(this);
|
||||
|
||||
if (gSaveContext.gameMode != GAMEMODE_NORMAL || gSaveContext.save.cutsceneIndex >= 0xFFF0) {
|
||||
if (gSaveContext.gameMode != GAMEMODE_NORMAL || gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
|
||||
gSaveContext.nayrusLoveTimer = 0;
|
||||
Magic_Reset(this);
|
||||
gSaveContext.sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.save.cutsceneIndex & 0xF);
|
||||
gSaveContext.sceneLayer = GET_CUTSCENE_LAYER(gSaveContext.save.cutsceneIndex);
|
||||
} else if (!LINK_IS_ADULT && IS_DAY) {
|
||||
gSaveContext.sceneLayer = SCENE_LAYER_CHILD_DAY;
|
||||
} else if (!LINK_IS_ADULT && !IS_DAY) {
|
||||
|
@ -625,7 +625,7 @@ void Play_Update(PlayState* this) {
|
|||
|
||||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
|
||||
|
||||
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
|
||||
if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
|
||||
sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.save.cutsceneIndex & 0xF);
|
||||
}
|
||||
|
||||
|
|
|
@ -396,7 +396,7 @@ BAD_RETURN(s32) Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd) {
|
|||
play->envCtx.sunPos.y = (Math_CosS(((void)0, gSaveContext.save.dayTime) - CLOCK_TIME(12, 0)) * 120.0f) * 25.0f;
|
||||
play->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.save.dayTime) - CLOCK_TIME(12, 0)) * 20.0f) * 25.0f;
|
||||
|
||||
if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) ||
|
||||
if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) ||
|
||||
(gSaveContext.save.entranceIndex == ENTR_LAKE_HYLIA_8)) {
|
||||
#if OOT_VERSION >= PAL_1_0
|
||||
gSaveContext.skyboxTime = ((void)0, gSaveContext.save.dayTime);
|
||||
|
@ -459,7 +459,7 @@ BAD_RETURN(s32) Scene_CommandAlternateHeaderList(PlayState* play, SceneCmd* cmd)
|
|||
PRINTF("\n[ZU]sceneset time =[%X]", ((void)0, gSaveContext.save.cutsceneIndex));
|
||||
PRINTF("\n[ZU]sceneset counter=[%X]", ((void)0, gSaveContext.sceneLayer));
|
||||
|
||||
if (gSaveContext.sceneLayer != 0) {
|
||||
if (gSaveContext.sceneLayer != SCENE_LAYER_CHILD_DAY) {
|
||||
SceneCmd* altHeader = ((SceneCmd**)SEGMENTED_TO_VIRTUAL(cmd->altHeaders.data))[gSaveContext.sceneLayer - 1];
|
||||
|
||||
if (altHeader != NULL) {
|
||||
|
@ -502,7 +502,7 @@ BAD_RETURN(s32) Scene_CommandMiscSettings(PlayState* play, SceneCmd* cmd) {
|
|||
|
||||
if (((play->sceneId >= SCENE_HYRULE_FIELD) && (play->sceneId <= SCENE_OUTSIDE_GANONS_CASTLE)) ||
|
||||
((play->sceneId >= SCENE_MARKET_ENTRANCE_DAY) && (play->sceneId <= SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS))) {
|
||||
if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
|
||||
if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) {
|
||||
gSaveContext.save.info.worldMapAreaData |= gBitFlags[((void)0, gSaveContext.worldMapArea)];
|
||||
PRINTF("000 area_arrival=%x (%d)\n", gSaveContext.save.info.worldMapAreaData,
|
||||
((void)0, gSaveContext.worldMapArea));
|
||||
|
@ -515,15 +515,15 @@ void Scene_SetTransitionForNextEntrance(PlayState* play) {
|
|||
|
||||
if (!IS_DAY) {
|
||||
if (!LINK_IS_ADULT) {
|
||||
entranceIndex = play->nextEntranceIndex + 1;
|
||||
entranceIndex = play->nextEntranceIndex + SCENE_LAYER_CHILD_NIGHT;
|
||||
} else {
|
||||
entranceIndex = play->nextEntranceIndex + 3;
|
||||
entranceIndex = play->nextEntranceIndex + SCENE_LAYER_ADULT_NIGHT;
|
||||
}
|
||||
} else {
|
||||
if (!LINK_IS_ADULT) {
|
||||
entranceIndex = play->nextEntranceIndex;
|
||||
entranceIndex = play->nextEntranceIndex + SCENE_LAYER_CHILD_DAY;
|
||||
} else {
|
||||
entranceIndex = play->nextEntranceIndex + 2;
|
||||
entranceIndex = play->nextEntranceIndex + SCENE_LAYER_ADULT_DAY;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -859,11 +859,11 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
|||
gSaveContext.save.entranceIndex = ENTR_LINKS_HOUSE_0;
|
||||
gSaveContext.save.linkAge = LINK_AGE_CHILD;
|
||||
gSaveContext.save.dayTime = CLOCK_TIME(10, 0);
|
||||
gSaveContext.save.cutsceneIndex = 0xFFF1;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_1;
|
||||
|
||||
#if DEBUG_FEATURES
|
||||
if (fileSelect->buttonIndex == 0) {
|
||||
gSaveContext.save.cutsceneIndex = 0;
|
||||
gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
ACELEM_NONE,
|
||||
OCELEM_NONE,
|
||||
},
|
||||
{ 0x00BB, 0x0050, 0x0000, { 0 } },
|
||||
{ 187, 80, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_bdan_switch.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "one_point_cutscene.h"
|
||||
#include "printf.h"
|
||||
|
@ -89,7 +90,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_bombwall.h"
|
||||
#include "libc64/qrand.h"
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "printf.h"
|
||||
#include "sfx.h"
|
||||
|
@ -28,7 +29,7 @@ void func_8086EDFC(BgBombwall* this, PlayState* play);
|
|||
void func_8086EE40(BgBombwall* this, PlayState* play);
|
||||
void func_8086EE94(BgBombwall* this, PlayState* play);
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInit[3] = {
|
||||
static ColliderTrisElementInit sTrisElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -73,7 +74,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
3,
|
||||
ARRAY_COUNT(sTrisElementsInit),
|
||||
sTrisElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_haka_sgami.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "sfx.h"
|
||||
#include "z_lib.h"
|
||||
|
@ -46,7 +47,7 @@ ActorProfile Bg_Haka_Sgami_Profile = {
|
|||
/**/ NULL,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInit[4] = {
|
||||
static ColliderTrisElementInit sTrisElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK2,
|
||||
|
@ -102,7 +103,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
4,
|
||||
ARRAY_COUNT(sTrisElementsInit),
|
||||
sTrisElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_haka_trap.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "rand.h"
|
||||
#include "sfx.h"
|
||||
|
@ -72,7 +73,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 30, 90, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInit[2] = {
|
||||
static ColliderTrisElementInit sTrisElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -106,7 +107,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInit),
|
||||
sTrisElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "z_bg_hidan_dalm.h"
|
||||
|
||||
#include "libc64/qrand.h"
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "sfx.h"
|
||||
#include "sys_matrix.h"
|
||||
|
@ -39,7 +40,7 @@ ActorProfile Bg_Hidan_Dalm_Profile = {
|
|||
/**/ BgHidanDalm_Draw,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementInit[4] = {
|
||||
static ColliderTrisElementInit sTrisElementInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -95,7 +96,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
4,
|
||||
ARRAY_COUNT(sTrisElementInit),
|
||||
sTrisElementInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
ACELEM_NONE,
|
||||
OCELEM_ON,
|
||||
},
|
||||
{ 30, 83, 0, { 0 } },
|
||||
{ 30, 83, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static CollisionCheckInfoInit sColChkInfoInit = { 1, 80, 100, MASS_IMMOVABLE };
|
||||
|
|
|
@ -41,7 +41,7 @@ static f32 sYPosOffsets[] = {
|
|||
-20.0f, -120.0f, -220.0f, -320.0f, -420.0f,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInit[2] = {
|
||||
static ColliderTrisElementInit sTrisElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -75,7 +75,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInit),
|
||||
sTrisElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_hidan_hrock.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "rumble.h"
|
||||
#include "sfx.h"
|
||||
|
@ -37,7 +38,7 @@ ActorProfile Bg_Hidan_Hrock_Profile = {
|
|||
/**/ BgHidanHrock_Draw,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInit[2] = {
|
||||
static ColliderTrisElementInit sTrisElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -71,7 +72,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInit),
|
||||
sTrisElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
|
||||
#include "libc64/qrand.h"
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "ichain.h"
|
||||
|
@ -53,7 +54,7 @@ static Gfx* sBreakableWallDLists[] = {
|
|||
gFireTempleLargeBombableWallDL,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -76,7 +77,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ ActorProfile Bg_Hidan_Rsekizou_Profile = {
|
|||
/**/ BgHidanRsekizou_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[6] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -115,7 +115,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
6,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ ActorProfile Bg_Hidan_Sekizou_Profile = {
|
|||
/**/ BgHidanSekizou_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[6] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -119,7 +119,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
6,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ ActorProfile Bg_Hidan_Sima_Profile = {
|
|||
/**/ BgHidanSima_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[2] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
|
|
@ -53,7 +53,7 @@ void BgInGate_Init(Actor* thisx, PlayState* play) {
|
|||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
if ((play->sceneId != SCENE_LON_LON_RANCH || !LINK_IS_ADULT) ||
|
||||
(GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.save.cutsceneIndex != 0xFFF0))) {
|
||||
(GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.save.cutsceneIndex != CS_INDEX_0))) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
|
||||
#include "libc64/qrand.h"
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "ichain.h"
|
||||
|
@ -40,7 +41,7 @@ ActorProfile Bg_Jya_Bombchuiwa_Profile = {
|
|||
/**/ BgJyaBombchuiwa_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -63,7 +64,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
|
||||
#include "libc64/qrand.h"
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "printf.h"
|
||||
#include "sfx.h"
|
||||
|
@ -60,7 +61,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#include "z_bg_jya_goroiwa.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "sfx.h"
|
||||
#include "z_lib.h"
|
||||
|
@ -65,7 +66,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ ActorProfile Bg_Jya_Haheniron_Profile = {
|
|||
/**/ BgJyaHaheniron_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -66,7 +66,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_menkuri_eye.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "ichain.h"
|
||||
|
@ -37,7 +38,7 @@ ActorProfile Bg_Menkuri_Eye_Profile = {
|
|||
|
||||
static s32 sNumEyesShot;
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK4,
|
||||
|
@ -60,7 +61,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ ActorProfile Bg_Mizu_Bwall_Profile = {
|
|||
/**/ BgMizuBwall_Draw,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInitFloor[2] = {
|
||||
static ColliderTrisElementInit sTrisElementsInitFloor[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -78,11 +78,11 @@ static ColliderTrisInit sTrisInitFloor = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInitFloor),
|
||||
sTrisElementsInitFloor,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInitRutoWall[1] = {
|
||||
static ColliderTrisElementInit sTrisElementsInitRutoWall[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -105,11 +105,11 @@ static ColliderTrisInit sTrisInitRutoWall = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sTrisElementsInitRutoWall),
|
||||
sTrisElementsInitRutoWall,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInitWall[2] = {
|
||||
static ColliderTrisElementInit sTrisElementsInitWall[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -143,7 +143,7 @@ static ColliderTrisInit sTrisInitUnusedWall = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInitWall),
|
||||
sTrisElementsInitWall,
|
||||
};
|
||||
|
||||
|
@ -156,7 +156,7 @@ static ColliderTrisInit sTrisInitStingerWall = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInitWall),
|
||||
sTrisElementsInitWall,
|
||||
};
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ ActorProfile Bg_Mori_Hashigo_Profile = {
|
|||
/**/ NULL,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK4,
|
||||
|
@ -70,7 +70,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "z_bg_po_event.h"
|
||||
|
||||
#include "libc64/qrand.h"
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "ichain.h"
|
||||
|
@ -55,7 +56,7 @@ ActorProfile Bg_Po_Event_Profile = {
|
|||
/**/ BgPoEvent_Draw,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInit[2] = {
|
||||
static ColliderTrisElementInit sTrisElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK4,
|
||||
|
@ -89,7 +90,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInit),
|
||||
sTrisElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ void BgRelayObjects_Destroy(Actor* thisx, PlayState* play) {
|
|||
BgRelayObjects* this = (BgRelayObjects*)thisx;
|
||||
|
||||
DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId);
|
||||
if ((this->dyna.actor.params == WINDMILL_ROTATING_GEAR) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) {
|
||||
if ((this->dyna.actor.params == WINDMILL_ROTATING_GEAR) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
|
||||
CLEAR_EVENTCHKINF(EVENTCHKINF_65);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -231,7 +231,7 @@ void BgSpot00Hanebasi_Update(Actor* thisx, PlayState* play) {
|
|||
this->actionFunc = BgSpot00Hanebasi_DoNothing;
|
||||
Player_SetCsActionWithHaltedActors(play, &player->actor, PLAYER_CSACTION_8);
|
||||
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF1;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_1;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||
} else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 3000.0f, 0x7530)) {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_spot06_objects.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "ichain.h"
|
||||
|
@ -70,7 +71,7 @@ ActorProfile Bg_Spot06_Objects_Profile = {
|
|||
/**/ BgSpot06Objects_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -93,7 +94,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
3,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ ActorProfile Bg_Spot18_Basket_Profile = {
|
|||
/**/ BgSpot18Basket_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[2] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -83,7 +83,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
ACELEM_NONE,
|
||||
OCELEM_ON,
|
||||
},
|
||||
{ 10, 70, 0, { 0 } },
|
||||
{ 10, 70, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static CollisionCheckInfoInit sColChkInfoInit = { 10, 35, 100, MASS_IMMOVABLE };
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_bg_ydan_maruta.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "ichain.h"
|
||||
#include "one_point_cutscene.h"
|
||||
#include "sfx.h"
|
||||
|
@ -39,7 +40,7 @@ ActorProfile Bg_Ydan_Maruta_Profile = {
|
|||
/**/ BgYdanMaruta_Draw,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInit[2] = {
|
||||
static ColliderTrisElementInit sTrisElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -73,7 +74,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInit),
|
||||
sTrisElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "z_bg_ydan_sp.h"
|
||||
|
||||
#include "libc64/qrand.h"
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "ichain.h"
|
||||
|
@ -51,7 +52,7 @@ ActorProfile Bg_Ydan_Sp_Profile = {
|
|||
/**/ BgYdanSp_Draw,
|
||||
};
|
||||
|
||||
static ColliderTrisElementInit sTrisElementsInit[2] = {
|
||||
static ColliderTrisElementInit sTrisElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -85,7 +86,7 @@ static ColliderTrisInit sTrisInit = {
|
|||
OC2_TYPE_2,
|
||||
COLSHAPE_TRIS,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sTrisElementsInit),
|
||||
sTrisElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#include "array_count.h"
|
||||
#include "collision_check.h"
|
||||
|
||||
static u8 D_808C7000[] = {
|
||||
|
@ -10,7 +11,7 @@ static u8 D_808C7000[] = {
|
|||
1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[19] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK3,
|
||||
|
@ -231,7 +232,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
19,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "collision_check.h"
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[19] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK3,
|
||||
|
@ -221,6 +221,6 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
19,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "collision_check.h"
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[9] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK3,
|
||||
|
@ -111,6 +111,6 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
9,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "assets/objects/object_geff/object_geff.h"
|
||||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||
|
||||
#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \
|
||||
"ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
|
||||
|
||||
#define FLAGS \
|
||||
|
@ -2144,7 +2144,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
|
|||
FALLTHROUGH;
|
||||
case 20:
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF2;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_2;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE;
|
||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||
|
|
|
@ -92,7 +92,7 @@ ActorProfile Boss_Goma_Profile = {
|
|||
/**/ BossGoma_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
|
||||
static ColliderJntSphElementInit sColliderJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK3,
|
||||
|
@ -247,7 +247,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
13,
|
||||
ARRAY_COUNT(sColliderJntSphElementsInit),
|
||||
sColliderJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#include "assets/objects/object_mo/object_mo.h"
|
||||
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||
"pal-1.0:128 pal-1.1:128"
|
||||
"ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
|
||||
|
||||
#define FLAGS \
|
||||
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "collision_check.h"
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[19] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK4,
|
||||
|
@ -221,7 +221,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
19,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "array_count.h"
|
||||
#include "collision_check.h"
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInitHand[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK1,
|
||||
|
@ -133,11 +134,11 @@ static ColliderJntSphInit sJntSphInitHand = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
11,
|
||||
ARRAY_COUNT(sJntSphElementsInitHand),
|
||||
sJntSphElementsInitHand,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInitHead[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK1,
|
||||
|
@ -270,7 +271,7 @@ static ColliderJntSphInit sJntSphInitHead = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
11,
|
||||
ARRAY_COUNT(sJntSphElementsInitHead),
|
||||
sJntSphElementsInitHead,
|
||||
};
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "assets/objects/object_tw/object_tw.h"
|
||||
|
||||
#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \
|
||||
"ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
|
||||
"ique-cn:0 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
|
||||
|
||||
#define FLAGS \
|
||||
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
|
||||
|
@ -492,7 +492,7 @@ void BossTw_Init(Actor* thisx, PlayState* play2) {
|
|||
|
||||
if (this->actor.params == TW_FIRE_BLAST || this->actor.params == TW_FIRE_BLAST_GROUND) {
|
||||
this->actionFunc = BossTw_BlastFire;
|
||||
this->collider.elem.atDmgInfo.effect = 1;
|
||||
this->collider.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_FIRE;
|
||||
} else if (this->actor.params == TW_ICE_BLAST || this->actor.params == TW_ICE_BLAST_GROUND) {
|
||||
this->actionFunc = BossTw_BlastIce;
|
||||
} else if (this->actor.params >= TW_DEATHBALL_KOTAKE) {
|
||||
|
|
|
@ -245,7 +245,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 85, 120, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInitSupport[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInitSupport[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -272,7 +272,7 @@ static ColliderJntSphInit sJntSphInitSupport = {
|
|||
sJntSphElementsInitSupport,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInitBari[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInitBari[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
|
|
@ -85,7 +85,14 @@ static ColliderCylinderInitType1 sCylinderInit = {
|
|||
OC1_ON | OC1_TYPE_PLAYER,
|
||||
COLSHAPE_CYLINDER,
|
||||
},
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
{ 0x00000000, 0x00, 0x00 },
|
||||
{ 0x00000000, 0x00, 0x00 },
|
||||
ATELEM_NONE,
|
||||
ACELEM_NONE,
|
||||
OCELEM_ON,
|
||||
},
|
||||
{ 25, 80, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
ACELEM_ON,
|
||||
OCELEM_NONE,
|
||||
},
|
||||
{ 50, 10, 0, { 0 } },
|
||||
{ 50, 10, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static s16 sGrottoEntrances[] = {
|
||||
|
|
|
@ -74,7 +74,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 20, 100, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -97,7 +97,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -508,7 +508,7 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
Math_SmoothStepToF(&this->lightRayAlpha, 0.0f, 0.2f, 6.0f, 0.01f);
|
||||
this->warpTimer++;
|
||||
|
||||
if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == 0xFFEF) {
|
||||
if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
|
||||
PRINTF(T("\n\n\nじかんがきたからおーしまい fade_direction=[%d]",
|
||||
"\n\n\nThe time has come, so it's over. fade_direction=[%d]"),
|
||||
play->transitionTrigger, TRANS_TRIGGER_START);
|
||||
|
@ -518,10 +518,10 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
Flags_SetEventChkInf(EVENTCHKINF_25);
|
||||
Item_Give(play, ITEM_GORON_RUBY);
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF1;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_1;
|
||||
} else {
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_5;
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_DEKU_TREE_BOSS) {
|
||||
if (!Flags_GetEventChkInf(EVENTCHKINF_07)) {
|
||||
|
@ -529,14 +529,14 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
Flags_SetEventChkInf(EVENTCHKINF_09);
|
||||
Item_Give(play, ITEM_KOKIRI_EMERALD);
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF1;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_1;
|
||||
} else {
|
||||
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_11;
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_JABU_JABU_BOSS) {
|
||||
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
PRINTF(T("\n\n\nおわりおわり", "\n\n\nThe end The end"));
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
|
@ -620,11 +620,11 @@ void DoorWarp1_RutoWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
Math_SmoothStepToF(&this->lightRayAlpha, 0.0f, 0.2f, 6.0f, 0.01f);
|
||||
this->warpTimer++;
|
||||
|
||||
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) {
|
||||
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
|
||||
SET_EVENTCHKINF(EVENTCHKINF_37);
|
||||
Item_Give(play, ITEM_ZORA_SAPPHIRE);
|
||||
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_0;
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
play->transitionType = TRANS_TYPE_FADE_WHITE_SLOW;
|
||||
}
|
||||
|
@ -719,13 +719,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
}
|
||||
this->warpTimer++;
|
||||
|
||||
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) {
|
||||
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
|
||||
if (play->sceneId == SCENE_FOREST_TEMPLE_BOSS) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_48)) {
|
||||
SET_EVENTCHKINF(EVENTCHKINF_48);
|
||||
Item_Give(play, ITEM_MEDALLION_FOREST);
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST;
|
||||
} else {
|
||||
if (!LINK_IS_ADULT) {
|
||||
|
@ -733,28 +733,28 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
} else {
|
||||
play->nextEntranceIndex = ENTR_SACRED_FOREST_MEADOW_3;
|
||||
}
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_FIRE_TEMPLE_BOSS) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_49)) {
|
||||
SET_EVENTCHKINF(EVENTCHKINF_49);
|
||||
Item_Give(play, ITEM_MEDALLION_FIRE);
|
||||
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
|
||||
gSaveContext.nextCutsceneIndex = 0xFFF3;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_3;
|
||||
} else {
|
||||
if (!LINK_IS_ADULT) {
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_4;
|
||||
} else {
|
||||
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_5;
|
||||
}
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_WATER_TEMPLE_BOSS) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_4A)) {
|
||||
SET_EVENTCHKINF(EVENTCHKINF_4A);
|
||||
Item_Give(play, ITEM_MEDALLION_WATER);
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
gSaveContext.chamberCutsceneNum = CHAMBER_CS_WATER;
|
||||
} else {
|
||||
if (!LINK_IS_ADULT) {
|
||||
|
@ -762,13 +762,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
} else {
|
||||
play->nextEntranceIndex = ENTR_LAKE_HYLIA_9;
|
||||
}
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_SPIRIT_TEMPLE_BOSS) {
|
||||
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
|
||||
Item_Give(play, ITEM_MEDALLION_SPIRIT);
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
gSaveContext.chamberCutsceneNum = CHAMBER_CS_SPIRIT;
|
||||
} else {
|
||||
if (!LINK_IS_ADULT) {
|
||||
|
@ -776,13 +776,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
} else {
|
||||
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_8;
|
||||
}
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_SHADOW_TEMPLE_BOSS) {
|
||||
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
|
||||
Item_Give(play, ITEM_MEDALLION_SHADOW);
|
||||
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
gSaveContext.chamberCutsceneNum = CHAMBER_CS_SHADOW;
|
||||
} else {
|
||||
if (!LINK_IS_ADULT) {
|
||||
|
@ -790,7 +790,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
|
|||
} else {
|
||||
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
|
||||
}
|
||||
gSaveContext.nextCutsceneIndex = 0;
|
||||
gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
|
||||
}
|
||||
}
|
||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||
|
|
|
@ -68,7 +68,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
ACELEM_ON,
|
||||
OCELEM_ON,
|
||||
},
|
||||
{ 30, 40, 0, { 0 } },
|
||||
{ 30, 40, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
void EnAni_SetupAction(EnAni* this, EnAniActionFunc actionFunc) {
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_en_ba.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "ichain.h"
|
||||
|
@ -51,7 +52,7 @@ ActorProfile En_Ba_Profile = {
|
|||
|
||||
static Vec3f D_809B8080 = { 0.0f, 0.0f, 32.0f };
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[2] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -85,7 +86,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -226,7 +226,7 @@ ActorProfile En_Bb_Profile = {
|
|||
/**/ EnBb_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -249,7 +249,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
@ -370,7 +370,7 @@ void EnBb_Init(Actor* thisx, PlayState* play) {
|
|||
thisx->naviEnemyId = NAVI_ENEMY_RED_BUBBLE;
|
||||
thisx->colChkInfo.damageTable = &sDamageTableRed;
|
||||
this->flameEnvColor.r = 255;
|
||||
this->collider.elements[0].base.atDmgInfo.effect = 1;
|
||||
this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_FIRE;
|
||||
EnBb_SetupRed(play, this);
|
||||
break;
|
||||
case ENBB_WHITE:
|
||||
|
|
|
@ -62,7 +62,7 @@ ActorProfile En_Bigokuta_Profile = {
|
|||
/**/ EnBigokuta_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK1,
|
||||
|
|
|
@ -158,7 +158,7 @@ void EnBili_Destroy(Actor* thisx, PlayState* play) {
|
|||
|
||||
void EnBili_SetupFloatIdle(EnBili* this) {
|
||||
this->actor.speed = 0.7f;
|
||||
this->collider.elem.acDmgInfo.effect = 1; // Shock?
|
||||
this->collider.elem.acDmgInfo.hitBacklash = HIT_BACKLASH_ELECTRIC;
|
||||
this->timer = 32;
|
||||
this->actor.home.pos.y = this->actor.world.pos.y;
|
||||
this->actor.gravity = 0.0f;
|
||||
|
@ -254,7 +254,7 @@ void EnBili_SetupDie(EnBili* this) {
|
|||
*/
|
||||
void EnBili_SetupStunned(EnBili* this) {
|
||||
this->timer = 80;
|
||||
this->collider.elem.acDmgInfo.effect = 0;
|
||||
this->collider.elem.acDmgInfo.hitBacklash = HIT_BACKLASH_NONE;
|
||||
this->actor.gravity = -1.0f;
|
||||
this->actor.speed = 0.0f;
|
||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 150, COLORFILTER_BUFFLAG_XLU, 80);
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "z_en_bom.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "ichain.h"
|
||||
|
@ -62,7 +63,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 6, 11, 14, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -85,7 +86,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "z_en_bombf.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
|
||||
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "regs.h"
|
||||
|
@ -66,7 +67,7 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
{ 9, 18, 10, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -89,7 +90,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_NONE,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "z_en_bubble.h"
|
||||
|
||||
#include "libc64/qrand.h"
|
||||
#include "array_count.h"
|
||||
#include "gfx.h"
|
||||
#include "gfx_setupdl.h"
|
||||
#include "sfx.h"
|
||||
|
@ -36,7 +37,7 @@ ActorProfile En_Bubble_Profile = {
|
|||
/**/ EnBubble_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[2] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -70,7 +71,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
2,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
@ -110,7 +111,7 @@ u32 func_809CBCBC(EnBubble* this) {
|
|||
ColliderElement* elem = &this->colliderJntSph.elements[0].base;
|
||||
|
||||
elem->atDmgInfo.dmgFlags = DMG_EXPLOSIVE;
|
||||
elem->atDmgInfo.effect = 0;
|
||||
elem->atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_NONE;
|
||||
elem->atDmgInfo.damage = 4;
|
||||
elem->atElemFlags = ATELEM_ON;
|
||||
this->actor.velocity.y = 0.0f;
|
||||
|
|
|
@ -42,15 +42,17 @@ void EnButte_SetupWaitToDie(EnButte* this);
|
|||
void EnButte_WaitToDie(EnButte* this, PlayState* play);
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{ {
|
||||
ELEM_MATERIAL_UNK0,
|
||||
{ 0x00000000, 0x00, 0x00 },
|
||||
{ 0xFFCFFFFF, 0x000, 0x00 },
|
||||
ATELEM_NONE,
|
||||
ACELEM_NONE,
|
||||
OCELEM_ON,
|
||||
},
|
||||
{ 0, { { 0, 0, 0 }, 5 }, 100 } },
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
{ 0x00000000, 0x00, 0x00 },
|
||||
{ 0xFFCFFFFF, 0x00, 0x00 },
|
||||
ATELEM_NONE,
|
||||
ACELEM_NONE,
|
||||
OCELEM_ON,
|
||||
},
|
||||
{ 0, { { 0, 0, 0 }, 5 }, 100 },
|
||||
},
|
||||
};
|
||||
static ColliderJntSphInit sColliderJntSphInit = {
|
||||
{
|
||||
|
@ -61,7 +63,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
|
@ -787,7 +787,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
|
|||
func_8002836C(play, &thisx->world.pos, &velocity, &accel, &sp50, &sp4C, 0x3C, 0, 0x14);
|
||||
}
|
||||
if (this->unk_248 <= 0.4f) {
|
||||
this->collider1.elem.atDmgInfo.effect = 0;
|
||||
this->collider1.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_NONE;
|
||||
if (((play->gameplayFrames & 1) == 0) && (this->unk_220 < 5) && (this->unk_23C == 0)) {
|
||||
accel.y = -0.1f;
|
||||
velocity.x = Rand_CenteredFloat(4.0f);
|
||||
|
@ -807,7 +807,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
|
|||
20.0f - (this->unk_248 * 40.0f));
|
||||
}
|
||||
} else {
|
||||
this->collider1.elem.atDmgInfo.effect = 1;
|
||||
this->collider1.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_FIRE;
|
||||
}
|
||||
|
||||
this->unk_234 = Actor_TestFloorInDirection(thisx, play, 50.0f, thisx->world.rot.y);
|
||||
|
|
|
@ -44,7 +44,7 @@ ActorProfile En_Crow_Profile = {
|
|||
/**/ EnCrow_Draw,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[] = {
|
||||
{
|
||||
{
|
||||
ELEM_MATERIAL_UNK0,
|
||||
|
@ -67,7 +67,7 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
OC2_TYPE_1,
|
||||
COLSHAPE_JNTSPH,
|
||||
},
|
||||
1,
|
||||
ARRAY_COUNT(sJntSphElementsInit),
|
||||
sJntSphElementsInit,
|
||||
};
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue