Finish intro scene

This commit is contained in:
MegaMech
2025-02-16 12:28:14 -07:00
parent 49135fe260
commit bb84daabe1
4 changed files with 231 additions and 116 deletions
+9 -28
View File
@@ -13,17 +13,15 @@ extern "C" {
#include "courses/harbour/ship2_model.h"
#include "courses/harbour/ship3_model.h"
#include "collision.h"
#include "menu_items.h"
#include "external.h"
#include "menus.h"
extern Gfx ship1_spag1_mesh[];
}
HarbourMastersIntro::HarbourMastersIntro() {
}
// Lights1 hmIntroLight = gdSPDefLights1(
// 0x7F, 0x30, 0x80,
// 0x60, 20, 10, 0x49, 0x49, 0x49
// );
void HarbourMastersIntro::HM_InitIntro() {
_camera.Pos.x = 0;
_camera.Pos.y = 0;
@@ -78,25 +76,17 @@ void HarbourMastersIntro::HM_TickIntro() {
_water = 0;
}
HarbourMastersIntro::SpagBob(_pos, _rot, 2.0f, 0.13f, 1.5f, 0.05f, 1.6f, 0.05f);
HarbourMastersIntro::SpagBob(_pos, _rot, 2.5f, 0.18f, 1.5f, 0.05f, 1.7f, 0.06f);
HarbourMastersIntro::Bob(_shipPos, _shipRot, 1.2f, 0.06f, 1.6f, -0.04f, 1.1f, -0.04f);
HarbourMastersIntro::Bob(_ship2Pos, _ship2Rot, 1.2f, 0.06f, 1.6f, -0.04f, 1.1f, -0.04f);
//_pos = FVector(0, -210, 1);
// _camera.Pos.x = 0;
// _camera.Pos.z = 0;
// _camera.Pos.y = 0;
_pos.x += 9;
_camera.Pos.x -= 1;
// Phase 1
if (_posHM64.y < 1) {
_posHM64.y += 5;
} else { // Phase 2
if (_posHM64.y < 400) {
} else { // Phase 3
}
if (_pos.x >= 880) {
gMenuFadeType = 0;
gMenuSelection = LOGO_INTRO_MENU;
gFadeModeSelection = FADE_MODE_LOGO;
}
find_and_set_tile_size((uintptr_t) ((void*)mat_water_water1), 0, _water);
@@ -134,7 +124,6 @@ void HarbourMastersIntro::HM_DrawIntro() {
gSPMatrix(gDisplayListHead++, &gGfxPool->mtxLookAt[0], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
mtxf_identity(someMtx);
render_set_position(someMtx, 0);
//gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
gDPSetEnvColor(gDisplayListHead++, 0x00, 0x00, 0x00, 0x00);
@@ -162,14 +151,6 @@ void HarbourMastersIntro::HM_DrawIntro() {
render_set_position(matrix3, 0);
gSPDisplayList(gDisplayListHead++, ship3_2Ship_mesh);
// Mat4 matrix3;
// Vec3f pos3 = {_posHM64.x, _posHM64.y, _posHM64.z};
// Vec3s rot3 = {_rotHM64.pitch * conv, _rotHM64.yaw * conv, _rotHM64.roll * conv};
// mtxf_pos_rotation_xyz(matrix3, pos3, rot3);
// mtxf_scale(matrix3, 2.0f);
// render_set_position(matrix3, 0);
// gSPDisplayList(gDisplayListHead++, hm64_Text_001_mesh);
Mat4 hMatrix;
Vec3f hPos = {_hPos.x, _hPos.y, _hPos.z};
Vec3s hRot = {_hRot.pitch * conv, -0x2100, _hRot.roll * conv};
+7 -4
View File
@@ -2375,9 +2375,9 @@ void setup_menus(void) {
add_menu_item(MENU_ITEM_TYPE_0EA, 0, 0, MENU_ITEM_PRIORITY_8);
break;
case HARBOUR_MASTERS_MENU:
case LOGO_INTRO_MENU:
add_menu_item(MENU_ITEM_UI_HARBOUR_MASTERS, 0, 0, MENU_ITEM_PRIORITY_0);
break;
case LOGO_INTRO_MENU:
add_menu_item(MENU_ITEM_UI_LOGO_INTRO, 0, 0, MENU_ITEM_PRIORITY_0);
break;
case CONTROLLER_PAK_MENU:
@@ -4751,7 +4751,7 @@ void func_8009CE64(s32 arg0) {
gCreditsCourseId = COURSE_LUIGI_RACEWAY;
} else {
gGotoMenu = 1;
gMenuSelection = 0x0000000B;
gMenuSelection = MAIN_MENU;
}
} else if (gGamestate == 4) {
if (D_8018E7AC[arg0] == 2) {
@@ -4869,8 +4869,11 @@ void func_8009CE64(s32 arg0) {
if (gDebugMenuSelection != 0x40) {
switch (gMenuFadeType) {
case 0:
if (gMenuSelection == 8) {
gMenuSelection = 0x0000000A;
if (gMenuSelection == HARBOUR_MASTERS_MENU) {
gMenuSelection = LOGO_INTRO_MENU;
gFadeModeSelection = 0;
} else if (gMenuSelection == LOGO_INTRO_MENU) {
gMenuSelection = START_MENU;
gFadeModeSelection = 2;
} else {
gMenuSelection++;
+7 -1
View File
@@ -59,7 +59,7 @@ s8 gCourseIndexInCup;
s8 unref_D_8018EE0C; // Set to 0 but never referenced
/** Data **/
s32 gMenuSelection = START_MENU;
s32 gMenuSelection = HARBOUR_MASTERS_MENU;
s32 gFadeModeSelection = FADE_MODE_NONE;
s8 gCharacterSelections[4] = { MARIO, LUIGI, YOSHI, TOAD };
@@ -196,6 +196,9 @@ void update_menus(void) {
case COURSE_DATA_MENU:
course_data_menu_act(&gControllers[controllerIdx], controllerIdx);
break;
case HARBOUR_MASTERS_MENU:
logo_intro_menu_act(&gControllers[controllerIdx], controllerIdx);
break;
case LOGO_INTRO_MENU:
logo_intro_menu_act(&gControllers[controllerIdx], controllerIdx);
break;
@@ -1873,6 +1876,9 @@ void load_menu_states(s32 menuSelection) {
case COURSE_DATA_MENU:
gSubMenuSelection = SUB_MENU_DATA_OPTIONS;
break;
case HARBOUR_MASTERS_MENU:
func_800CA008(0, 0);
break;
case LOGO_INTRO_MENU:
func_800CA008(0, 0);
break;