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;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
dynamicSceneSetRoomFlags(decorObject->dynamicId, ROOM_FLAG_FROM_INDEX(decorObject->rigidBody.currentRoom));
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ enum DecorObjectFlags {
|
|||
// important objects respawn at their original
|
||||
// location if they escape the level
|
||||
DecorObjectFlagsImportant = (1 << 0),
|
||||
DecorObjectFlagsMuted = (1 << 1),
|
||||
};
|
||||
|
||||
struct DecorObjectDefinition {
|
||||
|
@ -52,4 +53,4 @@ enum FizzleCheckResult {
|
|||
Gfx* decorBuildFizzleGfx(Gfx* gfxToRender, float fizzleTime, struct RenderState* renderState);
|
||||
enum FizzleCheckResult decorObjectUpdateFizzler(struct CollisionObject* collisionObject, float* fizzleTime);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -33,7 +33,7 @@ void mainMenuPlayAmbientSound() {
|
|||
}
|
||||
|
||||
void mainMenuInit(struct GameMenu* gameMenu) {
|
||||
sceneInitNoPauseMenu(&gScene);
|
||||
sceneInitNoPauseMenu(&gScene, 1);
|
||||
|
||||
gameMenuInit(gameMenu, gMainMenuOptions, sizeof(gMainMenuOptions) / sizeof(*gMainMenuOptions), 0);
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ void sceneInitDynamicColliders(struct Scene* scene) {
|
|||
}
|
||||
|
||||
void sceneInit(struct Scene* scene) {
|
||||
sceneInitNoPauseMenu(scene);
|
||||
sceneInitNoPauseMenu(scene, 0);
|
||||
|
||||
gameMenuInit(&gGameMenu, gPauseMenuOptions, sizeof(gPauseMenuOptions) / sizeof(*gPauseMenuOptions), 1);
|
||||
|
||||
|
@ -95,7 +95,7 @@ void sceneInit(struct Scene* scene) {
|
|||
gGameMenu.state = GameMenuStateResumeGame;
|
||||
}
|
||||
|
||||
void sceneInitNoPauseMenu(struct Scene* scene) {
|
||||
void sceneInitNoPauseMenu(struct Scene* scene, int mainMenuMode) {
|
||||
signalsInit(1);
|
||||
|
||||
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.scale = gOneVec;
|
||||
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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,7 +90,7 @@ extern struct Scene gScene;
|
|||
struct GraphicsTask;
|
||||
|
||||
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 sceneUpdate(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);
|
||||
void sceneClosePortal(struct Scene* scene, int portalIndex);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue