mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-25 13:35:12 +00:00
djui player menu custom camera cutscene (#2)
This commit is contained in:
parent
64cc05e219
commit
974577f678
14 changed files with 119 additions and 22 deletions
|
@ -2462,6 +2462,9 @@ CUTSCENE_LOOP = 0x7FFF
|
||||||
--- @type integer
|
--- @type integer
|
||||||
CUTSCENE_NONPAINTING_DEATH = 170
|
CUTSCENE_NONPAINTING_DEATH = 170
|
||||||
|
|
||||||
|
--- @type integer
|
||||||
|
CUTSCENE_PALETTE_EDITOR = 182
|
||||||
|
|
||||||
--- @type integer
|
--- @type integer
|
||||||
CUTSCENE_PREPARE_CANNON = 150
|
CUTSCENE_PREPARE_CANNON = 150
|
||||||
|
|
||||||
|
@ -8797,6 +8800,9 @@ ACT_SUFFOCATION = 0x00021314
|
||||||
--- @type integer
|
--- @type integer
|
||||||
ACT_SWIMMING_END = 0x300024D1
|
ACT_SWIMMING_END = 0x300024D1
|
||||||
|
|
||||||
|
--- @type integer
|
||||||
|
ACT_TAKING_OFF_CAP = 0x0000133E
|
||||||
|
|
||||||
--- @type integer
|
--- @type integer
|
||||||
ACT_TELEPORT_FADE_IN = 0x00001337
|
ACT_TELEPORT_FADE_IN = 0x00001337
|
||||||
|
|
||||||
|
|
|
@ -219,6 +219,7 @@
|
||||||
--- @field public mode integer
|
--- @field public mode integer
|
||||||
--- @field public mtx Mat4
|
--- @field public mtx Mat4
|
||||||
--- @field public nextYaw integer
|
--- @field public nextYaw integer
|
||||||
|
--- @field public paletteEditorCap boolean
|
||||||
--- @field public pos Vec3f
|
--- @field public pos Vec3f
|
||||||
--- @field public unusedVec1 Vec3f
|
--- @field public unusedVec1 Vec3f
|
||||||
--- @field public yaw integer
|
--- @field public yaw integer
|
||||||
|
|
|
@ -777,6 +777,7 @@
|
||||||
- CUTSCENE_KEY_DANCE
|
- CUTSCENE_KEY_DANCE
|
||||||
- CUTSCENE_LOOP
|
- CUTSCENE_LOOP
|
||||||
- CUTSCENE_NONPAINTING_DEATH
|
- CUTSCENE_NONPAINTING_DEATH
|
||||||
|
- CUTSCENE_PALETTE_EDITOR
|
||||||
- CUTSCENE_PREPARE_CANNON
|
- CUTSCENE_PREPARE_CANNON
|
||||||
- CUTSCENE_QUICKSAND_DEATH
|
- CUTSCENE_QUICKSAND_DEATH
|
||||||
- CUTSCENE_RACE_DIALOG
|
- CUTSCENE_RACE_DIALOG
|
||||||
|
@ -3144,6 +3145,7 @@
|
||||||
- ACT_STOP_CROUCHING
|
- ACT_STOP_CROUCHING
|
||||||
- ACT_SUFFOCATION
|
- ACT_SUFFOCATION
|
||||||
- ACT_SWIMMING_END
|
- ACT_SWIMMING_END
|
||||||
|
- ACT_TAKING_OFF_CAP
|
||||||
- ACT_TELEPORT_FADE_IN
|
- ACT_TELEPORT_FADE_IN
|
||||||
- ACT_TELEPORT_FADE_OUT
|
- ACT_TELEPORT_FADE_OUT
|
||||||
- ACT_THROWING
|
- ACT_THROWING
|
||||||
|
|
|
@ -365,6 +365,7 @@
|
||||||
| mode | `integer` | |
|
| mode | `integer` | |
|
||||||
| mtx | `Mat4` | read-only |
|
| mtx | `Mat4` | read-only |
|
||||||
| nextYaw | `integer` | |
|
| nextYaw | `integer` | |
|
||||||
|
| paletteEditorCap | `boolean` | |
|
||||||
| pos | [Vec3f](structs.md#Vec3f) | read-only |
|
| pos | [Vec3f](structs.md#Vec3f) | read-only |
|
||||||
| unusedVec1 | [Vec3f](structs.md#Vec3f) | read-only |
|
| unusedVec1 | [Vec3f](structs.md#Vec3f) | read-only |
|
||||||
| yaw | `integer` | |
|
| yaw | `integer` | |
|
||||||
|
|
|
@ -396,6 +396,7 @@
|
||||||
#define ACT_BUTT_STUCK_IN_GROUND 0x0002033B // (0x13B | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
#define ACT_BUTT_STUCK_IN_GROUND 0x0002033B // (0x13B | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||||
#define ACT_FEET_STUCK_IN_GROUND 0x0002033C // (0x13C | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
#define ACT_FEET_STUCK_IN_GROUND 0x0002033C // (0x13C | ACT_FLAG_STATIONARY | ACT_FLAG_INVULNERABLE)
|
||||||
#define ACT_PUTTING_ON_CAP 0x0000133D // (0x13D | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
#define ACT_PUTTING_ON_CAP 0x0000133D // (0x13D | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE)
|
||||||
|
#define ACT_TAKING_OFF_CAP 0x0000133E // (0x13E | ACT_FLAG_STATIONARY | ACT_FLAG_INTANGIBLE) // ! COOP ACTION
|
||||||
|
|
||||||
// group 0x140: "automatic" actions
|
// group 0x140: "automatic" actions
|
||||||
#define ACT_HOLDING_POLE 0x08100340 // (0x140 | ACT_FLAG_STATIONARY | ACT_FLAG_ON_POLE | ACT_FLAG_PAUSE_EXIT)
|
#define ACT_HOLDING_POLE 0x08100340 // (0x140 | ACT_FLAG_STATIONARY | ACT_FLAG_ON_POLE | ACT_FLAG_PAUSE_EXIT)
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "paintings.h"
|
#include "paintings.h"
|
||||||
#include "engine/graph_node.h"
|
#include "engine/graph_node.h"
|
||||||
#include "level_table.h"
|
#include "level_table.h"
|
||||||
|
#include "mario.h"
|
||||||
#include "game/hardcoded.h"
|
#include "game/hardcoded.h"
|
||||||
#include "game/sound_init.h"
|
#include "game/sound_init.h"
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
|
@ -472,6 +473,8 @@ s32 update_slide_or_0f_camera(struct Camera *c, Vec3f, Vec3f);
|
||||||
s32 update_spiral_stairs_camera(struct Camera *c, Vec3f, Vec3f);
|
s32 update_spiral_stairs_camera(struct Camera *c, Vec3f, Vec3f);
|
||||||
s32 update_rom_hack_camera(struct Camera *c, Vec3f, Vec3f);
|
s32 update_rom_hack_camera(struct Camera *c, Vec3f, Vec3f);
|
||||||
void mode_rom_hack_camera(struct Camera *c);
|
void mode_rom_hack_camera(struct Camera *c);
|
||||||
|
void cutscene_take_cap_off(struct MarioState *m);
|
||||||
|
void cutscene_put_cap_on(struct MarioState *m);
|
||||||
|
|
||||||
typedef s32 (*CameraTransition)(struct Camera *c, Vec3f, Vec3f);
|
typedef s32 (*CameraTransition)(struct Camera *c, Vec3f, Vec3f);
|
||||||
CameraTransition sModeTransitions[] = {
|
CameraTransition sModeTransitions[] = {
|
||||||
|
@ -3343,6 +3346,12 @@ void update_camera(struct Camera *c) {
|
||||||
update_lakitu(c);
|
update_lakitu(c);
|
||||||
|
|
||||||
gLakituState.lastFrameAction = sMarioCamState->action;
|
gLakituState.lastFrameAction = sMarioCamState->action;
|
||||||
|
|
||||||
|
// Make sure the palette editor cutscene is properly reset
|
||||||
|
if (c->paletteEditorCap && c->cutscene != CUTSCENE_PALETTE_EDITOR && (gMarioState->flags & MARIO_CAP_ON_HEAD) == 0) {
|
||||||
|
cutscene_put_cap_on(gMarioState);
|
||||||
|
c->paletteEditorCap = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void soft_reset_camera(struct Camera* c) {
|
void soft_reset_camera(struct Camera* c) {
|
||||||
|
@ -10849,6 +10858,35 @@ BAD_RETURN(s32) cutscene_door_mode(struct Camera *c) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// coop specific
|
||||||
|
void cutscene_palette_editor(struct Camera *c) {
|
||||||
|
if (!c) { return; }
|
||||||
|
struct MarioState* m = gMarioState;
|
||||||
|
|
||||||
|
if (!gInPlayerMenu) {
|
||||||
|
if (c->paletteEditorCap) {
|
||||||
|
if (!(m->flags & MARIO_CAP_ON_HEAD)) {
|
||||||
|
set_mario_action(m, ACT_PUTTING_ON_CAP, 0);
|
||||||
|
}
|
||||||
|
c->paletteEditorCap = false;
|
||||||
|
}
|
||||||
|
c->cutscene = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (m->action == ACT_IDLE && m->flags & MARIO_CAP_ON_HEAD) {
|
||||||
|
set_mario_action(m, ACT_TAKING_OFF_CAP, 0);
|
||||||
|
c->paletteEditorCap = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
c->pos[0] = m->pos[0] + (0x200 * sins(m->faceAngle[1]));
|
||||||
|
c->pos[1] = m->pos[1] + 0x80;
|
||||||
|
c->pos[2] = m->pos[2] + (0x200 * coss(m->faceAngle[1]));
|
||||||
|
|
||||||
|
c->focus[0] = m->pos[0];
|
||||||
|
c->focus[1] = m->pos[1] + 0x80;
|
||||||
|
c->focus[2] = m->pos[2];
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************************************
|
/******************************************************************************************************
|
||||||
* Cutscenes
|
* Cutscenes
|
||||||
******************************************************************************************************/
|
******************************************************************************************************/
|
||||||
|
@ -11247,6 +11285,10 @@ struct Cutscene sCutsceneReadMessage[] = {
|
||||||
{ cutscene_read_message_end, 0 }
|
{ cutscene_read_message_end, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct Cutscene sCutscenePaletteEditor[] = {
|
||||||
|
{ cutscene_palette_editor, CUTSCENE_LOOP },
|
||||||
|
};
|
||||||
|
|
||||||
/* TODO:
|
/* TODO:
|
||||||
* The next two arrays are both related to levels, and they look generated.
|
* The next two arrays are both related to levels, and they look generated.
|
||||||
* These should be split into their own file.
|
* These should be split into their own file.
|
||||||
|
@ -11720,6 +11762,7 @@ void play_cutscene(struct Camera *c) {
|
||||||
CUTSCENE(CUTSCENE_RACE_DIALOG, sCutsceneDialog)
|
CUTSCENE(CUTSCENE_RACE_DIALOG, sCutsceneDialog)
|
||||||
CUTSCENE(CUTSCENE_ENTER_PYRAMID_TOP, sCutsceneEnterPyramidTop)
|
CUTSCENE(CUTSCENE_ENTER_PYRAMID_TOP, sCutsceneEnterPyramidTop)
|
||||||
CUTSCENE(CUTSCENE_SSL_PYRAMID_EXPLODE, sCutscenePyramidTopExplode)
|
CUTSCENE(CUTSCENE_SSL_PYRAMID_EXPLODE, sCutscenePyramidTopExplode)
|
||||||
|
CUTSCENE(CUTSCENE_PALETTE_EDITOR, sCutscenePaletteEditor)
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef CUTSCENE
|
#undef CUTSCENE
|
||||||
|
|
|
@ -257,6 +257,7 @@ extern u8 gRomhackCameraAllowDpad;
|
||||||
#define CUTSCENE_EXIT_WATERFALL 179
|
#define CUTSCENE_EXIT_WATERFALL 179
|
||||||
#define CUTSCENE_EXIT_FALL_WMOTR 180
|
#define CUTSCENE_EXIT_FALL_WMOTR 180
|
||||||
#define CUTSCENE_ENTER_POOL 181
|
#define CUTSCENE_ENTER_POOL 181
|
||||||
|
#define CUTSCENE_PALETTE_EDITOR 182
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop the cutscene.
|
* Stop the cutscene.
|
||||||
|
@ -575,6 +576,7 @@ struct Camera
|
||||||
/// when paused. See zoom_out_if_paused_and_outside
|
/// when paused. See zoom_out_if_paused_and_outside
|
||||||
/*0x68*/ f32 areaCenY;
|
/*0x68*/ f32 areaCenY;
|
||||||
/*????*/ Mat4 mtx;
|
/*????*/ Mat4 mtx;
|
||||||
|
/*????*/ bool paletteEditorCap;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -3154,7 +3154,7 @@ s16 render_pause_courses_and_castle(void) {
|
||||||
gDialogTextAlpha += 25;
|
gDialogTextAlpha += 25;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gDjuiPanelPauseCreated) { shade_screen(); }
|
if (gDjuiPanelPauseCreated && !gInPlayerMenu) { shade_screen(); }
|
||||||
if (gPlayer1Controller->buttonPressed & R_TRIG) {
|
if (gPlayer1Controller->buttonPressed & R_TRIG) {
|
||||||
djui_panel_pause_create(NULL);
|
djui_panel_pause_create(NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1646,6 +1646,12 @@ void update_menu_level(void) {
|
||||||
gMarioState->faceAngle[1] = -0x1C34;
|
gMarioState->faceAngle[1] = -0x1C34;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
gLakituState.skipCameraInterpolationTimestamp = gGlobalTimer;
|
||||||
|
extern s32 gCamSkipInterp;
|
||||||
|
gCamSkipInterp = 1;
|
||||||
|
vec3f_copy(gCurrentArea->camera->pos, gLakituState.curPos);
|
||||||
|
vec3f_copy(gLakituState.pos, gLakituState.curPos);
|
||||||
|
vec3f_copy(gLakituState.goalPos, gLakituState.curPos);
|
||||||
|
|
||||||
gMarioState->health = 0x880;
|
gMarioState->health = 0x880;
|
||||||
// reset input
|
// reset input
|
||||||
|
|
|
@ -1847,7 +1847,7 @@ s32 act_squished(struct MarioState *m) {
|
||||||
s32 act_putting_on_cap(struct MarioState *m) {
|
s32 act_putting_on_cap(struct MarioState *m) {
|
||||||
s32 animFrame = set_character_animation(m, CHAR_ANIM_PUT_CAP_ON);
|
s32 animFrame = set_character_animation(m, CHAR_ANIM_PUT_CAP_ON);
|
||||||
|
|
||||||
if (animFrame == 0) {
|
if (animFrame == 0 && !m->area->camera->paletteEditorCap) {
|
||||||
enable_time_stop_if_alone();
|
enable_time_stop_if_alone();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1864,6 +1864,28 @@ s32 act_putting_on_cap(struct MarioState *m) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// coop custom action
|
||||||
|
s32 act_taking_off_cap(struct MarioState *m) {
|
||||||
|
s16 animFrame = set_character_animation(m, CHAR_ANIM_TAKE_CAP_OFF_THEN_ON);
|
||||||
|
switch (animFrame) {
|
||||||
|
case 0:
|
||||||
|
if (!m->area->camera->paletteEditorCap) {
|
||||||
|
enable_time_stop_if_alone();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
cutscene_take_cap_off(m);
|
||||||
|
break;
|
||||||
|
case 30:
|
||||||
|
set_mario_action(m, ACT_IDLE, 0);
|
||||||
|
disable_time_stop();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
stationary_ground_step(m);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFrame, s32 target2,
|
void stuck_in_ground_handler(struct MarioState *m, s32 animation, s32 unstuckFrame, s32 target2,
|
||||||
s32 target3, s32 endAction) {
|
s32 target3, s32 endAction) {
|
||||||
if (!m) { return; }
|
if (!m) { return; }
|
||||||
|
@ -3124,6 +3146,7 @@ s32 mario_execute_cutscene_action(struct MarioState *m) {
|
||||||
case ACT_BUTT_STUCK_IN_GROUND: cancel = act_butt_stuck_in_ground(m); break;
|
case ACT_BUTT_STUCK_IN_GROUND: cancel = act_butt_stuck_in_ground(m); break;
|
||||||
case ACT_FEET_STUCK_IN_GROUND: cancel = act_feet_stuck_in_ground(m); break;
|
case ACT_FEET_STUCK_IN_GROUND: cancel = act_feet_stuck_in_ground(m); break;
|
||||||
case ACT_PUTTING_ON_CAP: cancel = act_putting_on_cap(m); break;
|
case ACT_PUTTING_ON_CAP: cancel = act_putting_on_cap(m); break;
|
||||||
|
case ACT_TAKING_OFF_CAP: cancel = act_taking_off_cap(m); break;
|
||||||
default:
|
default:
|
||||||
LOG_ERROR("Attempted to execute unimplemented action '%04X'", m->action);
|
LOG_ERROR("Attempted to execute unimplemented action '%04X'", m->action);
|
||||||
set_mario_action(m, ACT_IDLE, 0);
|
set_mario_action(m, ACT_IDLE, 0);
|
||||||
|
|
|
@ -132,11 +132,11 @@ s32 act_idle(struct MarioState *m) {
|
||||||
if (m->area && ((m->area->terrainType & TERRAIN_MASK) == TERRAIN_SNOW)) {
|
if (m->area && ((m->area->terrainType & TERRAIN_MASK) == TERRAIN_SNOW)) {
|
||||||
return set_mario_action(m, ACT_SHIVERING, 0);
|
return set_mario_action(m, ACT_SHIVERING, 0);
|
||||||
} else {
|
} else {
|
||||||
if (!gDjuiInMainMenu) {
|
if (gDjuiInMainMenu || gInPlayerMenu) {
|
||||||
return set_mario_action(m, ACT_START_SLEEPING, 0);
|
|
||||||
} else {
|
|
||||||
m->actionState = 0;
|
m->actionState = 0;
|
||||||
m->actionTimer = 0;
|
m->actionTimer = 0;
|
||||||
|
} else {
|
||||||
|
return set_mario_action(m, ACT_START_SLEEPING, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,14 @@ static struct DjuiSelectionbox* sPalettePresetSelection;
|
||||||
static struct DjuiInputbox* sHexColorTextBox;
|
static struct DjuiInputbox* sHexColorTextBox;
|
||||||
static struct DjuiSlider *sSliderR, *sSliderG, *sSliderB;
|
static struct DjuiSlider *sSliderR, *sSliderG, *sSliderB;
|
||||||
|
|
||||||
|
bool gDjuiPanelPlayerCreated = false;
|
||||||
|
|
||||||
|
static void djui_panel_player_update_camera_cutscene(void) {
|
||||||
|
if (gMarioState->area && gMarioState->area->camera && gMarioState->area->camera->cutscene == 0) {
|
||||||
|
gMarioState->area->camera->cutscene = CUTSCENE_PALETTE_EDITOR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void djui_panel_player_edit_palette_update_hex_code_box(void) {
|
static void djui_panel_player_edit_palette_update_hex_code_box(void) {
|
||||||
char buf[7];
|
char buf[7];
|
||||||
static const char digitToChar[] = "0123456789abcdef";
|
static const char digitToChar[] = "0123456789abcdef";
|
||||||
|
@ -235,6 +243,7 @@ static void djui_panel_player_destroy(UNUSED struct DjuiBase* caller) {
|
||||||
|
|
||||||
void djui_panel_player_create(struct DjuiBase* caller) {
|
void djui_panel_player_create(struct DjuiBase* caller) {
|
||||||
djui_panel_player_prevent_demo(NULL);
|
djui_panel_player_prevent_demo(NULL);
|
||||||
|
djui_panel_player_update_camera_cutscene();
|
||||||
gInPlayerMenu = true;
|
gInPlayerMenu = true;
|
||||||
|
|
||||||
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(PLAYER, PLAYER_TITLE));
|
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(PLAYER, PLAYER_TITLE));
|
||||||
|
|
|
@ -254,23 +254,24 @@ static struct LuaObjectField sBullyCollisionDataFields[LUA_BULLY_COLLISION_DATA_
|
||||||
{ "velZ", LVT_F32, offsetof(struct BullyCollisionData, velZ), false, LOT_NONE },
|
{ "velZ", LVT_F32, offsetof(struct BullyCollisionData, velZ), false, LOT_NONE },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define LUA_CAMERA_FIELD_COUNT 13
|
#define LUA_CAMERA_FIELD_COUNT 14
|
||||||
static struct LuaObjectField sCameraFields[LUA_CAMERA_FIELD_COUNT] = {
|
static struct LuaObjectField sCameraFields[LUA_CAMERA_FIELD_COUNT] = {
|
||||||
{ "areaCenX", LVT_F32, offsetof(struct Camera, areaCenX), false, LOT_NONE },
|
{ "areaCenX", LVT_F32, offsetof(struct Camera, areaCenX), false, LOT_NONE },
|
||||||
{ "areaCenY", LVT_F32, offsetof(struct Camera, areaCenY), false, LOT_NONE },
|
{ "areaCenY", LVT_F32, offsetof(struct Camera, areaCenY), false, LOT_NONE },
|
||||||
{ "areaCenZ", LVT_F32, offsetof(struct Camera, areaCenZ), false, LOT_NONE },
|
{ "areaCenZ", LVT_F32, offsetof(struct Camera, areaCenZ), false, LOT_NONE },
|
||||||
{ "cutscene", LVT_U8, offsetof(struct Camera, cutscene), false, LOT_NONE },
|
{ "cutscene", LVT_U8, offsetof(struct Camera, cutscene), false, LOT_NONE },
|
||||||
{ "defMode", LVT_U8, offsetof(struct Camera, defMode), false, LOT_NONE },
|
{ "defMode", LVT_U8, offsetof(struct Camera, defMode), false, LOT_NONE },
|
||||||
{ "doorStatus", LVT_U8, offsetof(struct Camera, doorStatus), false, LOT_NONE },
|
{ "doorStatus", LVT_U8, offsetof(struct Camera, doorStatus), false, LOT_NONE },
|
||||||
// { "filler31", LOT_???, offsetof(struct Camera, filler31), false, LOT_??? }, <--- UNIMPLEMENTED
|
// { "filler31", LOT_???, offsetof(struct Camera, filler31), false, LOT_??? }, <--- UNIMPLEMENTED
|
||||||
// { "filler3C", LOT_???, offsetof(struct Camera, filler3C), false, LOT_??? }, <--- UNIMPLEMENTED
|
// { "filler3C", LOT_???, offsetof(struct Camera, filler3C), false, LOT_??? }, <--- UNIMPLEMENTED
|
||||||
{ "focus", LVT_COBJECT, offsetof(struct Camera, focus), true, LOT_VEC3F },
|
{ "focus", LVT_COBJECT, offsetof(struct Camera, focus), true, LOT_VEC3F },
|
||||||
{ "mode", LVT_U8, offsetof(struct Camera, mode), false, LOT_NONE },
|
{ "mode", LVT_U8, offsetof(struct Camera, mode), false, LOT_NONE },
|
||||||
{ "mtx", LVT_COBJECT, offsetof(struct Camera, mtx), true, LOT_MAT4 },
|
{ "mtx", LVT_COBJECT, offsetof(struct Camera, mtx), true, LOT_MAT4 },
|
||||||
{ "nextYaw", LVT_S16, offsetof(struct Camera, nextYaw), false, LOT_NONE },
|
{ "nextYaw", LVT_S16, offsetof(struct Camera, nextYaw), false, LOT_NONE },
|
||||||
{ "pos", LVT_COBJECT, offsetof(struct Camera, pos), true, LOT_VEC3F },
|
{ "paletteEditorCap", LVT_BOOL, offsetof(struct Camera, paletteEditorCap), false, LOT_NONE },
|
||||||
{ "unusedVec1", LVT_COBJECT, offsetof(struct Camera, unusedVec1), true, LOT_VEC3F },
|
{ "pos", LVT_COBJECT, offsetof(struct Camera, pos), true, LOT_VEC3F },
|
||||||
{ "yaw", LVT_S16, offsetof(struct Camera, yaw), false, LOT_NONE },
|
{ "unusedVec1", LVT_COBJECT, offsetof(struct Camera, unusedVec1), true, LOT_VEC3F },
|
||||||
|
{ "yaw", LVT_S16, offsetof(struct Camera, yaw), false, LOT_NONE },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define LUA_CAMERA_FOVSTATUS_FIELD_COUNT 8
|
#define LUA_CAMERA_FOVSTATUS_FIELD_COUNT 8
|
||||||
|
|
|
@ -1059,6 +1059,7 @@ char gSmluaConstants[] = ""
|
||||||
"CUTSCENE_EXIT_WATERFALL = 179\n"
|
"CUTSCENE_EXIT_WATERFALL = 179\n"
|
||||||
"CUTSCENE_EXIT_FALL_WMOTR = 180\n"
|
"CUTSCENE_EXIT_FALL_WMOTR = 180\n"
|
||||||
"CUTSCENE_ENTER_POOL = 181\n"
|
"CUTSCENE_ENTER_POOL = 181\n"
|
||||||
|
"CUTSCENE_PALETTE_EDITOR = 182\n"
|
||||||
"CUTSCENE_STOP = 0x8000\n"
|
"CUTSCENE_STOP = 0x8000\n"
|
||||||
"CUTSCENE_LOOP = 0x7FFF\n"
|
"CUTSCENE_LOOP = 0x7FFF\n"
|
||||||
"HAND_CAM_SHAKE_OFF = 0\n"
|
"HAND_CAM_SHAKE_OFF = 0\n"
|
||||||
|
@ -3232,6 +3233,7 @@ char gSmluaConstants[] = ""
|
||||||
"ACT_BUTT_STUCK_IN_GROUND = 0x0002033B\n"
|
"ACT_BUTT_STUCK_IN_GROUND = 0x0002033B\n"
|
||||||
"ACT_FEET_STUCK_IN_GROUND = 0x0002033C\n"
|
"ACT_FEET_STUCK_IN_GROUND = 0x0002033C\n"
|
||||||
"ACT_PUTTING_ON_CAP = 0x0000133D\n"
|
"ACT_PUTTING_ON_CAP = 0x0000133D\n"
|
||||||
|
"ACT_TAKING_OFF_CAP = 0x0000133E\n"
|
||||||
"ACT_HOLDING_POLE = 0x08100340\n"
|
"ACT_HOLDING_POLE = 0x08100340\n"
|
||||||
"ACT_GRAB_POLE_SLOW = 0x00100341\n"
|
"ACT_GRAB_POLE_SLOW = 0x00100341\n"
|
||||||
"ACT_GRAB_POLE_FAST = 0x00100342\n"
|
"ACT_GRAB_POLE_FAST = 0x00100342\n"
|
||||||
|
|
Loading…
Reference in a new issue