mirror of
https://github.com/mwpenny/portal64-still-alive.git
synced 2024-10-19 22:27:36 -04:00
Work on main menu camera
This commit is contained in:
parent
6b311659d6
commit
ba5f97b346
3
Makefile
3
Makefile
|
@ -245,7 +245,8 @@ build/assets/models/props/combine_ball_catcher.h: assets/materials/ball_catcher.
|
|||
|
||||
build/assets/models/props/combine_ball_launcher.h: assets/materials/ball_catcher.skm.yaml
|
||||
|
||||
ANIM_TEST_CHAMBERS = build/assets/test_chambers/test_chamber_03/test_chamber_03_anim.o \
|
||||
ANIM_TEST_CHAMBERS = build/assets/test_chambers/test_chamber_00/test_chamber_00_anim.o \
|
||||
build/assets/test_chambers/test_chamber_03/test_chamber_03_anim.o \
|
||||
build/assets/test_chambers/test_chamber_04/test_chamber_04_anim.o \
|
||||
build/assets/test_chambers/test_chamber_06/test_chamber_06_anim.o \
|
||||
build/assets/test_chambers/test_chamber_07/test_chamber_07_anim.o
|
||||
|
|
Binary file not shown.
|
@ -237,7 +237,8 @@ void cutsceneRunnerStartStep(struct CutsceneRunner* runner) {
|
|||
&gScene.animator,
|
||||
step->playAnimation.armatureIndex,
|
||||
step->playAnimation.animationIndex,
|
||||
cutsceneRunnerConvertPlaybackSpeed(step->playAnimation.playbackSpeed)
|
||||
cutsceneRunnerConvertPlaybackSpeed(step->playAnimation.playbackSpeed),
|
||||
0
|
||||
);
|
||||
break;
|
||||
case CutsceneStepSetAnimationSpeed:
|
||||
|
|
|
@ -21,6 +21,12 @@ Gfx* menuBuildText(struct Font* font, char* message, int x, int y) {
|
|||
return result;
|
||||
}
|
||||
|
||||
void mainMenuReadCamera(struct MainMenu* mainMenu) {
|
||||
gScene.camera.transform = gScene.animator.armatures[TEST_CHAMBER_00_TEST_CHAMBER_00_ARMATURE_CAMERA].pose[0];
|
||||
vector3Scale(&gScene.camera.transform.position, &gScene.camera.transform.position, 1.0f / SCENE_SCALE);
|
||||
soundListenerUpdate(&gScene.camera.transform.position, &gScene.camera.transform.rotation, &gZeroVec, 0);
|
||||
}
|
||||
|
||||
void mainMenuInit(struct MainMenu* mainMenu) {
|
||||
sceneInit(&gScene);
|
||||
|
||||
|
@ -28,18 +34,22 @@ void mainMenuInit(struct MainMenu* mainMenu) {
|
|||
mainMenu->loadGameText = menuBuildText(&gDejaVuSansFont, "LOAD GAME", 30, 147);
|
||||
mainMenu->optionsText = menuBuildText(&gDejaVuSansFont, "OPTIONS", 30, 159);
|
||||
|
||||
struct Transform* cameraTransfrom = &gCurrentLevel->locations[TEST_CHAMBER_00_TEST_CHAMBER_00_LOCATION_CAMERA].transform;
|
||||
sceneAnimatorPlay(
|
||||
&gScene.animator,
|
||||
TEST_CHAMBER_00_TEST_CHAMBER_00_ARMATURE_CAMERA,
|
||||
TEST_CHAMBER_00_TEST_CHAMBER_00_CAMERA_ANIMATION__ANIM_CAMERA_MAIN_MENU_CAMERA,
|
||||
1.0f,
|
||||
SKAnimatorFlagsLoop
|
||||
);
|
||||
|
||||
struct Quaternion gRelativeRotation;
|
||||
quatAxisAngle(&gUp, -M_PI * 0.5f, &gRelativeRotation);
|
||||
gScene.camera.transform = *cameraTransfrom;
|
||||
gScene.camera.fov = 61.9275f * 3.0f / 4.0f;
|
||||
quatMultiply(&cameraTransfrom->rotation, &gRelativeRotation, &gScene.camera.transform.rotation);
|
||||
soundListenerUpdate(&gScene.camera.transform.position, &gScene.camera.transform.rotation, &gZeroVec, 0);
|
||||
mainMenuReadCamera(mainMenu);
|
||||
|
||||
gScene.camera.fov = 56.0f;
|
||||
}
|
||||
|
||||
void mainMenuUpdate(struct MainMenu* mainMenu) {
|
||||
|
||||
sceneAnimatorUpdate(&gScene.animator);
|
||||
mainMenuReadCamera(mainMenu);
|
||||
}
|
||||
|
||||
extern Lights1 gSceneLights;
|
||||
|
|
|
@ -55,7 +55,7 @@ Mtx* sceneAnimatorBuildTransforms(struct SceneAnimator* sceneAnimator, struct Re
|
|||
return result;
|
||||
}
|
||||
|
||||
void sceneAnimatorPlay(struct SceneAnimator* sceneAnimator, int animatorIndex, int animationIndex, float speed) {
|
||||
void sceneAnimatorPlay(struct SceneAnimator* sceneAnimator, int animatorIndex, int animationIndex, float speed, int flags) {
|
||||
if (animatorIndex < 0 || animatorIndex >= sceneAnimator->animatorCount) {
|
||||
return;
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ void sceneAnimatorPlay(struct SceneAnimator* sceneAnimator, int animatorIndex, i
|
|||
return;
|
||||
}
|
||||
|
||||
skAnimatorRunClip(&sceneAnimator->animators[animatorIndex], clip, speed >= 0.0f ? 0.0f : clip->nFrames / clip->fps, 0);
|
||||
skAnimatorRunClip(&sceneAnimator->animators[animatorIndex], clip, speed >= 0.0f ? 0.0f : clip->nFrames / clip->fps, flags);
|
||||
}
|
||||
|
||||
void sceneAnimatorSetSpeed(struct SceneAnimator* sceneAnimator, int animatorIndex, float speed) {
|
||||
|
|
|
@ -25,7 +25,7 @@ void sceneAnimatorTransformForIndex(struct SceneAnimator* sceneAnimator, int ind
|
|||
|
||||
Mtx* sceneAnimatorBuildTransforms(struct SceneAnimator* sceneAnimator, struct RenderState* renderState);
|
||||
|
||||
void sceneAnimatorPlay(struct SceneAnimator* sceneAnimator, int animatorIndex, int animationIndex, float speed);
|
||||
void sceneAnimatorPlay(struct SceneAnimator* sceneAnimator, int animatorIndex, int animationIndex, float speed, int flags);
|
||||
void sceneAnimatorSetSpeed(struct SceneAnimator* sceneAnimator, int animatorIndex, float speed);
|
||||
|
||||
int sceneAnimatorIsRunning(struct SceneAnimator* sceneAnimator, int animatorIndex);
|
||||
|
|
Loading…
Reference in a new issue