Minor issues for next release

This commit is contained in:
James Lambert 2023-02-18 20:20:28 -07:00
parent 915790ecee
commit fc253fe93b
9 changed files with 17 additions and 5 deletions

View file

@ -85,9 +85,9 @@ Where `/home/james/Blender/blender-2.93.1-linux-x64` is the folder where Blender
## Current TODO list
- [ ] fix chell animation problem (fixed itself, investigate)
- [ ] sound effects for ball (portal_pak_dir/scripts/npc_sounds_energy_ball.txt)
--------------------------------------------------------
- [ ] Skips audio sometimes
- [ ] rotate auto uv
- [?] Skips audio sometimes
- [ ] Portal not rending recursively sometimes
- [ ] Passing into a ceiling portal can sometimes mess with the player rotation
- [ ] Correct elevator timing
@ -95,6 +95,7 @@ Where `/home/james/Blender/blender-2.93.1-linux-x64` is the folder where Blender
- [ ] Presort portal gun polygon order
- [ ] Signage should not always be on
- [ ] Camera shake
- [x] sound effects for ball (portal_pak_dir/scripts/npc_sounds_energy_ball.txt)
- [x] first portal wall
- [x] the cube bounces the player
- [x] break constraint after large distance

View file

@ -8,6 +8,7 @@
#include "cutscene_runner.h"
#include "../graphics/graphics.h"
#include "../player/player.h"
#include "checkpoint.h"
#include "../util/rom.h"
#include "../util/memory.h"
@ -122,11 +123,16 @@ void levelLoad(int index) {
void levelQueueLoad(int index, struct Transform* relativeExitTransform, struct Vector3* relativeVelocity) {
if (index == NEXT_LEVEL) {
gQueuedLevel = gCurrentLevelIndex + 1;
if (gQueuedLevel == LEVEL_COUNT) {
gQueuedLevel = 0;
}
} else {
gQueuedLevel = index;
}
gRelativeTransform = *relativeExitTransform;
gRelativeVelocity = *relativeVelocity;
checkpointClear();
}
void levelLoadLastCheckpoint() {

View file

@ -161,7 +161,7 @@ static void gameProc(void* arg) {
contactSolverInit(&gContactSolver);
portalSurfaceCleanupQueueInit();
savefileNew();
levelLoad(4);
levelLoad(0);
cutsceneRunnerReset();
controllersInit();
initAudio(fps);

View file

@ -125,6 +125,9 @@ void playerInit(struct Player* player, struct Location* startLocation, struct Ve
player->flags |= PlayerHasSecondPortalGun;
}
// player->flags |= PlayerHasFirstPortalGun | PlayerHasSecondPortalGun;
player->dynamicId = dynamicSceneAdd(player, playerRender, &player->body.transform.position, 1.5f);
dynamicSceneSetFlags(player->dynamicId, DYNAMIC_SCENE_OBJECT_SKIP_ROOT);

View file

@ -87,6 +87,7 @@ void ballInitInactive(struct Ball* ball) {
ball->targetSpeed = 0.0f;
ball->flags = 0;
ball->soundLoopId = SOUND_ID_NONE;
ball->lifetime = 0.0f;
}
void ballInit(struct Ball* ball, struct Vector3* position, struct Vector3* velocity, short startingRoom, float ballLifetime) {
@ -102,6 +103,7 @@ void ballInit(struct Ball* ball, struct Vector3* position, struct Vector3* veloc
ball->rigidBody.transform.scale = gOneVec;
ball->rigidBody.currentRoom = startingRoom;
ball->flags = 0;
ball->lifetime = ballLifetime;
ball->targetSpeed = sqrtf(vector3MagSqrd(&ball->rigidBody.velocity));
@ -109,7 +111,7 @@ void ballInit(struct Ball* ball, struct Vector3* position, struct Vector3* veloc
dynamicSceneSetRoomFlags(ball->dynamicId, ROOM_FLAG_FROM_INDEX(startingRoom));
ball->soundLoopId = soundPlayerPlay(soundsBallLoop, 4.0f, 1.0f, &ball->rigidBody.transform.position, &ball->rigidBody.velocity);
ball->soundLoopId = soundPlayerPlay(soundsBallLoop, 1.0f, 1.0f, &ball->rigidBody.transform.position, &ball->rigidBody.velocity);
}
void ballTurnOnCollision(struct Ball* ball) {

View file

@ -3,7 +3,7 @@
#include "../physics/collision_object.h"
#define BALL_VELOCITY 2.0f
#define BALL_VELOCITY 3.0f
#define BALL_FADE_TIME 3.0f
#define MAX_BURN_MARKS 3