Merge pull request #216 from hackgrid/master
mute DecorObjects in main_menu (Fixes #213)
This commit is contained in:
commit
baa8664a2e
|
@ -181,11 +181,11 @@ int decorObjectUpdate(struct DecorObject* decorObject) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (decorObject->definition->soundClipId != -1 && decorObject->playingSound == SOUND_ID_NONE && decorObject->fizzleTime == 0.0f) {
|
if (decorObject->definition->soundClipId != -1 && decorObject->playingSound == SOUND_ID_NONE && decorObject->fizzleTime == 0.0f && !(decorObject->definition->flags & DecorObjectFlagsMuted)) {
|
||||||
decorObject->playingSound = soundPlayerPlay(decorObject->definition->soundClipId, 1.0f, 1.0f, &decorObject->rigidBody.transform.position, &decorObject->rigidBody.velocity);
|
decorObject->playingSound = soundPlayerPlay(decorObject->definition->soundClipId, 1.0f, 1.0f, &decorObject->rigidBody.transform.position, &decorObject->rigidBody.velocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
dynamicSceneSetRoomFlags(decorObject->dynamicId, ROOM_FLAG_FROM_INDEX(decorObject->rigidBody.currentRoom));
|
dynamicSceneSetRoomFlags(decorObject->dynamicId, ROOM_FLAG_FROM_INDEX(decorObject->rigidBody.currentRoom));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ enum DecorObjectFlags {
|
||||||
// important objects respawn at their original
|
// important objects respawn at their original
|
||||||
// location if they escape the level
|
// location if they escape the level
|
||||||
DecorObjectFlagsImportant = (1 << 0),
|
DecorObjectFlagsImportant = (1 << 0),
|
||||||
|
DecorObjectFlagsMuted = (1 << 1),
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DecorObjectDefinition {
|
struct DecorObjectDefinition {
|
||||||
|
@ -52,4 +53,4 @@ enum FizzleCheckResult {
|
||||||
Gfx* decorBuildFizzleGfx(Gfx* gfxToRender, float fizzleTime, struct RenderState* renderState);
|
Gfx* decorBuildFizzleGfx(Gfx* gfxToRender, float fizzleTime, struct RenderState* renderState);
|
||||||
enum FizzleCheckResult decorObjectUpdateFizzler(struct CollisionObject* collisionObject, float* fizzleTime);
|
enum FizzleCheckResult decorObjectUpdateFizzler(struct CollisionObject* collisionObject, float* fizzleTime);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,7 +33,7 @@ void mainMenuPlayAmbientSound() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainMenuInit(struct GameMenu* gameMenu) {
|
void mainMenuInit(struct GameMenu* gameMenu) {
|
||||||
sceneInitNoPauseMenu(&gScene);
|
sceneInitNoPauseMenu(&gScene, 1);
|
||||||
|
|
||||||
gameMenuInit(gameMenu, gMainMenuOptions, sizeof(gMainMenuOptions) / sizeof(*gMainMenuOptions), 0);
|
gameMenuInit(gameMenu, gMainMenuOptions, sizeof(gMainMenuOptions) / sizeof(*gMainMenuOptions), 0);
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ void sceneInitDynamicColliders(struct Scene* scene) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sceneInit(struct Scene* scene) {
|
void sceneInit(struct Scene* scene) {
|
||||||
sceneInitNoPauseMenu(scene);
|
sceneInitNoPauseMenu(scene, 0);
|
||||||
|
|
||||||
gameMenuInit(&gGameMenu, gPauseMenuOptions, sizeof(gPauseMenuOptions) / sizeof(*gPauseMenuOptions), 1);
|
gameMenuInit(&gGameMenu, gPauseMenuOptions, sizeof(gPauseMenuOptions) / sizeof(*gPauseMenuOptions), 1);
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ void sceneInit(struct Scene* scene) {
|
||||||
gGameMenu.state = GameMenuStateResumeGame;
|
gGameMenu.state = GameMenuStateResumeGame;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sceneInitNoPauseMenu(struct Scene* scene) {
|
void sceneInitNoPauseMenu(struct Scene* scene, int mainMenuMode) {
|
||||||
signalsInit(1);
|
signalsInit(1);
|
||||||
|
|
||||||
cameraInit(&scene->camera, 70.0f, DEFAULT_NEAR_PLANE * SCENE_SCALE, DEFAULT_FAR_PLANE * SCENE_SCALE);
|
cameraInit(&scene->camera, 70.0f, DEFAULT_NEAR_PLANE * SCENE_SCALE, DEFAULT_FAR_PLANE * SCENE_SCALE);
|
||||||
|
@ -149,6 +149,12 @@ void sceneInitNoPauseMenu(struct Scene* scene) {
|
||||||
decorTransform.rotation = decorDef->rotation;
|
decorTransform.rotation = decorDef->rotation;
|
||||||
decorTransform.scale = gOneVec;
|
decorTransform.scale = gOneVec;
|
||||||
scene->decor[i] = decorObjectNew(decorObjectDefinitionForId(decorDef->decorId), &decorTransform, decorDef->roomIndex);
|
scene->decor[i] = decorObjectNew(decorObjectDefinitionForId(decorDef->decorId), &decorTransform, decorDef->roomIndex);
|
||||||
|
|
||||||
|
if(mainMenuMode == 1) {
|
||||||
|
scene->decor[i]->definition->flags |= DecorObjectFlagsMuted;
|
||||||
|
} else {
|
||||||
|
scene->decor[i]->definition->flags &= ~(DecorObjectFlagsMuted);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -901,4 +907,4 @@ void sceneClosePortal(struct Scene* scene, int portalIndex) {
|
||||||
collisionSceneRemoveDynamicObject(&scene->portals[portalIndex].collisionObject);
|
collisionSceneRemoveDynamicObject(&scene->portals[portalIndex].collisionObject);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,7 +90,7 @@ extern struct Scene gScene;
|
||||||
struct GraphicsTask;
|
struct GraphicsTask;
|
||||||
|
|
||||||
void sceneInit(struct Scene* scene);
|
void sceneInit(struct Scene* scene);
|
||||||
void sceneInitNoPauseMenu(struct Scene* scene);
|
void sceneInitNoPauseMenu(struct Scene* scene, int mainMenuMode);
|
||||||
void sceneRender(struct Scene* scene, struct RenderState* renderState, struct GraphicsTask* task);
|
void sceneRender(struct Scene* scene, struct RenderState* renderState, struct GraphicsTask* task);
|
||||||
void sceneUpdate(struct Scene* scene);
|
void sceneUpdate(struct Scene* scene);
|
||||||
void sceneQueueCheckpoint(struct Scene* scene);
|
void sceneQueueCheckpoint(struct Scene* scene);
|
||||||
|
@ -98,4 +98,4 @@ void sceneQueueCheckpoint(struct Scene* scene);
|
||||||
int sceneFirePortal(struct Scene* scene, struct Ray* ray, struct Vector3* playerUp, int portalIndex, int roomIndex, int fromPlayer, int just_checking);
|
int sceneFirePortal(struct Scene* scene, struct Ray* ray, struct Vector3* playerUp, int portalIndex, int roomIndex, int fromPlayer, int just_checking);
|
||||||
void sceneClosePortal(struct Scene* scene, int portalIndex);
|
void sceneClosePortal(struct Scene* scene, int portalIndex);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue