From ec0c6a79dcb0041218004021e1f09e2f712fe417 Mon Sep 17 00:00:00 2001 From: James Lambert Date: Thu, 4 Aug 2022 12:58:10 -0600 Subject: [PATCH] Work on portal gun pedestal work on movement polish --- Makefile | 16 +++++-- README.md | 18 +++---- assets/materials/objects.skm.yaml | 28 +++++++++++ assets/models/pedestal.blend | Bin 0 -> 142201 bytes assets/models/pedestal.flags | 1 + portal.ld | 1 + .../definition_generator/LevelGenerator.cpp | 40 ++++++++++++++++ src/levels/level_definition.h | 7 +++ src/levels/levels.c | 1 + src/main.c | 2 +- src/player/player.c | 2 +- src/player/player.h | 2 +- src/scene/camera.c | 16 +++++++ src/scene/pedestal.c | 44 ++++++++++++++++++ src/scene/pedestal.h | 17 +++++++ src/scene/portal.c | 39 ++++++++++------ src/scene/portal.h | 2 +- src/scene/scene.c | 8 +++- src/scene/scene.h | 3 ++ src/sk64/skelatool_armature.c | 11 ++++- tools/generate_animation_ld.js | 24 ++++++++++ 21 files changed, 247 insertions(+), 35 deletions(-) create mode 100644 assets/models/pedestal.blend create mode 100644 assets/models/pedestal.flags create mode 100644 src/scene/pedestal.c create mode 100644 src/scene/pedestal.h create mode 100644 tools/generate_animation_ld.js diff --git a/Makefile b/Makefile index 0e957b2..b83ccb0 100644 --- a/Makefile +++ b/Makefile @@ -173,8 +173,10 @@ MODEL_LIST = assets/models/cube/cube.blend \ assets/models/portal/portal_blue_face.blend \ assets/models/portal/portal_orange.blend \ assets/models/portal/portal_orange_filled.blend \ - assets/models/portal/portal_orange_face.blend + assets/models/portal/portal_orange_face.blend \ + assets/models/pedestal.blend +ANIM_LIST = build/assets/models/pedestal_anim.o MODEL_HEADERS = $(MODEL_LIST:%.blend=build/%.h) MODEL_OBJECTS = $(MODEL_LIST:%.blend=build/%_geo.o) @@ -188,6 +190,12 @@ build/src/decor/decor_object_list.o: $(MODEL_HEADERS) build/src/scene/portal.o: $(MODEL_HEADERS) +build/assets/models/%_anim.o: build/assets/models/%.h + +build/anims.ld: $(ANIM_LIST) tools/generate_animation_ld.js + @mkdir -p $(@D) + node tools/generate_animation_ld.js $@ $(ANIM_LIST) + #################### ## Test Chambers #################### @@ -271,6 +279,8 @@ build/src/audio/clips.h: tools/generate_sound_ids.js $(SOUND_CLIPS) build/src/audio/clips.o: build/src/audio/clips.h build/src/decor/decor_object_list.o: build/src/audio/clips.h +build/src/scene/pedestal.o: build/assets/models/pedestal.h + #################### ## Linking #################### @@ -292,7 +302,7 @@ $(CODESEGMENT)_no_debug.o: $(CODEOBJECTS_NO_DEBUG) $(LD) -o $(CODESEGMENT)_no_debug.o -r $(CODEOBJECTS_NO_DEBUG) $(LDFLAGS) -$(CP_LD_SCRIPT)_no_debug.ld: $(LD_SCRIPT) build/levels.ld +$(CP_LD_SCRIPT)_no_debug.ld: $(LD_SCRIPT) build/levels.ld build/anims.ld cpp -P -Wno-trigraphs $(LCDEFS) -DCODE_SEGMENT=$(CODESEGMENT)_no_debug.o -o $@ $< $(BASE_TARGET_NAME).z64: $(CODESEGMENT)_no_debug.o $(OBJECTS) $(CP_LD_SCRIPT)_no_debug.ld @@ -310,7 +320,7 @@ endif $(CODESEGMENT)_debug.o: $(CODEOBJECTS_DEBUG) $(LD) -o $(CODESEGMENT)_debug.o -r $(CODEOBJECTS_DEBUG) $(LDFLAGS) -$(CP_LD_SCRIPT)_debug.ld: $(LD_SCRIPT) build/levels.ld +$(CP_LD_SCRIPT)_debug.ld: $(LD_SCRIPT) build/levels.ld build/anims.ld cpp -P -Wno-trigraphs $(LCDEFS) -DCODE_SEGMENT=$(CODESEGMENT)_debug.o -o $@ $< $(BASE_TARGET_NAME)_debug.z64: $(CODESEGMENT)_debug.o $(OBJECTS) $(CP_LD_SCRIPT)_debug.ld diff --git a/README.md b/README.md index 9862f2d..273b486 100644 --- a/README.md +++ b/README.md @@ -84,20 +84,14 @@ Where `/home/james/Blender/blender-2.93.1-linux-x64` is the folder where Blender ## Current TODO list -- [ ] Fix bug where opening a portal can trigger a teleportation +- [ ] Prevent Glados from talking over herself +- [ ] Elevator and door sounds +- [ ] Portal gun pedistal - [ ] Turn level indicator board into a game object - [ ] Presort portal gun polygon order -- [ ] Implement level transitions - - Implement loading levels from the cartridge - [ ] Change the way player standing logic works - [ ] Cube dispenser - [ ] NAN in overlap -- [x] Implement "Elevator" -- [x] Implement "Emancipation grid" -- [x] Cut holes in portal walls -- [x] Get an optimized build working -- [x] Portal animations -- [x] Figure out why clip is silent -- [x] Fix z fighting in elevator -- [x] Fix crash -- [x] Determine why bad gfx cause RDP crash \ No newline at end of file +- [x] Fix portal overlapping bug +- [x] Fix bug where opening a portal can trigger a teleportation +- [x] Implement level transitions \ No newline at end of file diff --git a/assets/materials/objects.skm.yaml b/assets/materials/objects.skm.yaml index 949ab88..f49ca54 100644 --- a/assets/materials/objects.skm.yaml +++ b/assets/materials/objects.skm.yaml @@ -105,3 +105,31 @@ materials: set: [G_LIGHTING, G_SHADE] gDPSetCombineMode: color: ["SHADE", "0", "PRIMITIVE", "0"] + + solid_white: + gDPSetPrimColor: + r: 255 + g: 255 + b: 255 + gSPGeometryMode: + set: [G_LIGHTING, G_SHADE] + gDPSetCombineMode: + color: ["PRIMITIVE", "0", "SHADE", "0"] + + solid_black: + gDPSetPrimColor: + r: 32 + g: 32 + b: 32 + gSPGeometryMode: + set: [G_LIGHTING, G_SHADE] + gDPSetCombineMode: + color: ["PRIMITIVE", "0", "SHADE", "0"] + + blue_glow: + gDPSetPrimColor: + r: 32 + g: 32 + b: 32 + gDPSetCombineMode: + color: ["0", "0", "0", "PRIMITIVE"] diff --git a/assets/models/pedestal.blend b/assets/models/pedestal.blend new file mode 100644 index 0000000000000000000000000000000000000000..e0e14ab940b9fdf9ed03f7ef35127ed86ea0d9e2 GIT binary patch literal 142201 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

iwWmw@ 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ºsY@O{(kyk>x%c^20LOSTN%2dW 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 literal 0 HcmV?d00001 diff --git a/assets/models/pedestal.flags b/assets/models/pedestal.flags new file mode 100644 index 0000000..b445cbb --- /dev/null +++ b/assets/models/pedestal.flags @@ -0,0 +1 @@ +-r 90,0,0 -m assets/materials/static.skm.yaml -m assets/materials/objects.skm.yaml --default-material default \ No newline at end of file diff --git a/portal.ld b/portal.ld index d3bc9a6..30e9564 100644 --- a/portal.ld +++ b/portal.ld @@ -71,6 +71,7 @@ SECTIONS END_SEG(sound_data) #include "build/levels.ld" +#include "build/anims.ld" /* Discard everything not specifically mentioned above. */ /DISCARD/ : diff --git a/skelatool64/src/definition_generator/LevelGenerator.cpp b/skelatool64/src/definition_generator/LevelGenerator.cpp index e3f1279..eecdea0 100644 --- a/skelatool64/src/definition_generator/LevelGenerator.cpp +++ b/skelatool64/src/definition_generator/LevelGenerator.cpp @@ -664,6 +664,44 @@ void generateElevatorDefinitions( levelDef.AddPrimitive("elevatorCount", elevatorCount); } +void generatePedestalDefinitions( + const aiScene* scene, + CFileDefinition& fileDefinition, + StructureDataChunk& levelDef, + const RoomGeneratorOutput& roomOutput, + const DisplayListSettings& settings, + NodeGroups& nodeGroups) { + + int pedestalCount = 0; + std::unique_ptr pedestals(new StructureDataChunk()); + + aiMatrix4x4 baseTransform = settings.CreateCollisionTransform(); + + for (auto& nodeInfo : nodeGroups.NodesForType("@pedestal")) { + std::unique_ptr pedestalsData(new StructureDataChunk()); + aiVector3D pos; + aiQuaternion rot; + aiVector3D scale; + (baseTransform * nodeInfo.node->mTransformation).Decompose(scale, rot, pos); + pedestalsData->Add(std::unique_ptr(new StructureDataChunk(pos))); + pedestalsData->AddPrimitive(roomOutput.RoomForNode(nodeInfo.node)); + + pedestals->Add(std::move(pedestalsData)); + ++pedestalCount; + } + + std::string pedestalsCount = fileDefinition.AddDataDefinition( + "pedestals", + "struct PedestalDefinition", + true, + "_geo", + std::move(pedestals) + ); + + levelDef.AddPrimitive("pedestals", pedestalsCount); + levelDef.AddPrimitive("pedestalCount", pedestalCount); +} + void generateLevel( const aiScene* scene, CFileDefinition& fileDefinition, @@ -707,5 +745,7 @@ void generateLevel( generateElevatorDefinitions(scene, fileDefinition, *levelDef, roomOutput, settings, signals, nodeGroups); + generatePedestalDefinitions(scene, fileDefinition, *levelDef, roomOutput, settings, nodeGroups); + fileDefinition.AddDefinition(std::unique_ptr(new DataFileDefinition("struct LevelDefinition", fileDefinition.GetUniqueName("level"), false, "_geo", std::move(levelDef)))); } \ No newline at end of file diff --git a/src/levels/level_definition.h b/src/levels/level_definition.h index 02c0268..6f19012 100644 --- a/src/levels/level_definition.h +++ b/src/levels/level_definition.h @@ -130,6 +130,11 @@ struct ElevatorDefinition { short isExit; }; +struct PedestalDefinition { + struct Vector3 position; + short roomIndex; +}; + struct LevelDefinition { struct CollisionObject* collisionQuads; struct StaticContentElement *staticContent; @@ -149,6 +154,7 @@ struct LevelDefinition { struct DecorDefinition* decor; struct FizzlerDefinition* fizzlers; struct ElevatorDefinition* elevators; + struct PedestalDefinition* pedestals; short collisionQuadCount; short staticContentCount; short portalSurfaceCount; @@ -161,6 +167,7 @@ struct LevelDefinition { short decorCount; short fizzlerCount; short elevatorCount; + short pedestalCount; short startLocation; }; diff --git a/src/levels/levels.c b/src/levels/levels.c index c86bde5..569137d 100644 --- a/src/levels/levels.c +++ b/src/levels/levels.c @@ -76,6 +76,7 @@ struct LevelDefinition* levelFixPointers(struct LevelDefinition* from, int point result->decor = ADJUST_POINTER_POS(result->decor, pointerOffset); result->fizzlers = ADJUST_POINTER_POS(result->fizzlers, pointerOffset); result->elevators = ADJUST_POINTER_POS(result->elevators, pointerOffset); + result->pedestals = ADJUST_POINTER_POS(result->pedestals, pointerOffset); return result; } diff --git a/src/main.c b/src/main.c index 1c0d020..b86feab 100644 --- a/src/main.c +++ b/src/main.c @@ -149,7 +149,7 @@ static void gameProc(void* arg) { dynamicSceneInit(); contactSolverInit(&gContactSolver); - levelLoad(1); + levelLoad(0); controllersInit(); initAudio(); soundPlayerInit(); diff --git a/src/player/player.c b/src/player/player.c index e8133e9..bde2f88 100644 --- a/src/player/player.c +++ b/src/player/player.c @@ -79,7 +79,7 @@ void playerInit(struct Player* player, struct Location* startLocation) { #define ROTATE_RATE_DELTA (M_PI * 0.125f) #define ROTATE_RATE_STOP_DELTA (M_PI * 0.25f) -#define JUMP_IMPULSE 3.2f +#define JUMP_IMPULSE 2.7f void playerHandleCollision(struct Player* player) { struct ContactManifold* contact = contactSolverNextManifold(&gContactSolver, &player->collisionObject, NULL); diff --git a/src/player/player.h b/src/player/player.h index 3b6df36..e3be3ab 100644 --- a/src/player/player.h +++ b/src/player/player.h @@ -9,7 +9,7 @@ #define PLAYER_GRABBING_THROUGH_NOTHING -1 -#define PLAYER_HEAD_HEIGHT 0.8f +#define PLAYER_HEAD_HEIGHT 1.0f enum PlayerFlags { PlayerFlagsGrounded = (1 << 0), diff --git a/src/scene/camera.c b/src/scene/camera.c index 92e2628..1dce723 100644 --- a/src/scene/camera.c +++ b/src/scene/camera.c @@ -3,6 +3,7 @@ #include "math/transform.h" #include "defs.h" #include "../graphics/graphics.h" +#include "../math/mathf.h" int isOutsideFrustrum(struct FrustrumCullingInformation* frustrum, struct BoundingBoxs16* boundingBox) { for (int i = 0; i < frustrum->usedClippingPlaneCount; ++i) { @@ -90,6 +91,10 @@ void cameraExtractClippingPlane(float viewPersp[4][4], struct Plane* output, int output->d *= mult; } +int cameraIsValidMatrix(float matrix[4][4]) { + return fabsf(matrix[3][0]) <= 0x7fff && fabsf(matrix[3][1]) <= 0x7fff && fabsf(matrix[3][2]) <= 0x7fff; +} + Mtx* cameraSetupMatrices(struct Camera* camera, struct RenderState* renderState, float aspectRatio, u16* perspNorm, Vp* viewport, struct FrustrumCullingInformation* clippingInfo) { Mtx* viewProjMatrix = renderStateRequestMatrices(renderState, 2); @@ -97,6 +102,8 @@ Mtx* cameraSetupMatrices(struct Camera* camera, struct RenderState* renderState, return NULL; } + Gfx* renderStateStart = renderState->dl; + guMtxIdent(&viewProjMatrix[0]); gSPMatrix(renderState->dl++, osVirtualToPhysical(&viewProjMatrix[0]), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH); @@ -117,6 +124,11 @@ Mtx* cameraSetupMatrices(struct Camera* camera, struct RenderState* renderState, cameraBuildViewMatrix(camera, view); guMtxCatF(view, persp, combined); + + if (!cameraIsValidMatrix(combined)) { + goto error; + } + guMtxF2L(combined, &viewProjMatrix[1]); if (clippingInfo) { @@ -137,4 +149,8 @@ Mtx* cameraSetupMatrices(struct Camera* camera, struct RenderState* renderState, } return &viewProjMatrix[1]; + +error: + renderState->dl = renderStateStart; + return NULL; } \ No newline at end of file diff --git a/src/scene/pedestal.c b/src/scene/pedestal.c new file mode 100644 index 0000000..f4b0edc --- /dev/null +++ b/src/scene/pedestal.c @@ -0,0 +1,44 @@ +#include "pedestal.h" + +#include "../scene/dynamic_scene.h" +#include "../defs.h" + +#include "../build/assets/materials/static.h" +#include "../build/assets/models/pedestal.h" + +void pedestalRender(void* data, struct RenderScene* renderScene) { + struct Pedestal* pedestal = (struct Pedestal*)data; + + Mtx* matrix = renderStateRequestMatrices(renderScene->renderState, 1); + transformToMatrixL(&pedestal->transform, matrix, SCENE_SCALE); + + Mtx* armature = renderStateRequestMatrices(renderScene->renderState, pedestal->armature.numberOfBones); + + skCalculateTransforms(&pedestal->armature, armature); + + renderSceneAdd( + renderScene, + pedestal->armature.displayList, + matrix, + DEFAULT_INDEX, + &pedestal->transform.position, + armature + ); +} + +void pedestalInit(struct Pedestal* pedestal, struct PedestalDefinition* definition) { + transformInitIdentity(&pedestal->transform); + + pedestal->transform.position = definition->position; + pedestal->roomIndex = definition->roomIndex; + + skArmatureInit( + &pedestal->armature, + pedestal_model_gfx, + PEDESTAL_DEFAULT_BONES_COUNT, + pedestal_default_bones, + pedestal_bone_parent + ); + + pedestal->dynamicId = dynamicSceneAdd(pedestal, pedestalRender, &pedestal->transform, 0.8f); +} \ No newline at end of file diff --git a/src/scene/pedestal.h b/src/scene/pedestal.h new file mode 100644 index 0000000..8c4e47d --- /dev/null +++ b/src/scene/pedestal.h @@ -0,0 +1,17 @@ +#ifndef __SCENE_PEDESTAL_H__ +#define __SCENE_PEDESTAL_H__ + +#include "../sk64/skelatool_armature.h" +#include "../levels/level_definition.h" + +struct Pedestal { + struct Transform transform; + struct SKArmature armature; + + short dynamicId; + short roomIndex; +}; + +void pedestalInit(struct Pedestal* pedestal, struct PedestalDefinition* definition); + +#endif \ No newline at end of file diff --git a/src/scene/portal.c b/src/scene/portal.c index 8a74298..f0173fa 100644 --- a/src/scene/portal.c +++ b/src/scene/portal.c @@ -173,7 +173,7 @@ Vp* renderPropsBuildViewport(struct RenderProps* props, struct RenderState* rend return viewport; } -void renderPropsNext(struct RenderProps* current, struct RenderProps* next, struct Transform* fromPortal, struct Transform* toPortal, struct RenderState* renderState) { +int renderPropsNext(struct RenderProps* current, struct RenderProps* next, struct Transform* fromPortal, struct Transform* toPortal, struct RenderState* renderState) { struct Transform otherInverse; transformInvert(fromPortal, &otherInverse); struct Transform portalCombined; @@ -200,7 +200,10 @@ void renderPropsNext(struct RenderProps* current, struct RenderProps* next, stru } // render any objects halfway through portals - cameraSetupMatrices(&next->camera, renderState, next->aspectRatio, &next->perspectiveCorrect, current->viewport, NULL); + if (!cameraSetupMatrices(&next->camera, renderState, next->aspectRatio, &next->perspectiveCorrect, current->viewport, NULL)) { + return 0; + } + dynamicSceneRenderTouchingPortal(&next->camera.transform, ¤t->cullingInfo, renderState); next->currentDepth = current->currentDepth - 1; @@ -240,6 +243,8 @@ void renderPropsNext(struct RenderProps* current, struct RenderProps* next, stru gSPViewport(renderState->dl++, viewport); gDPSetScissor(renderState->dl++, G_SC_NON_INTERLACE, next->minX, next->minY, next->maxX, next->maxY); #endif + + return 1; } void portalInit(struct Portal* portal, enum PortalFlags flags) { @@ -337,6 +342,19 @@ void portalRenderScreenCover(struct Vector2s16* points, int pointCount, struct R gDPSetRenderMode(renderState->dl++, G_RM_ZB_OPA_SURF, G_RM_ZB_OPA_SURF2); } +void portalRenderCover(struct Portal* portal, float portalTransform[4][4], struct RenderState* renderState) { + Mtx* matrix = renderStateRequestMatrices(renderState, 1); + + guMtxF2L(portalTransform, matrix); + gSPMatrix(renderState->dl++, matrix, G_MTX_MODELVIEW | G_MTX_PUSH | G_MTX_MUL); + if (portal->flags & PortalFlagsOddParity) { + gSPDisplayList(renderState->dl++, portal_portal_blue_filled_model_gfx); + } else { + gSPDisplayList(renderState->dl++, portal_portal_orange_filled_model_gfx); + } + gSPPopMatrix(renderState->dl++, G_MTX_MODELVIEW); +} + void portalRender(struct Portal* portal, struct Portal* otherPortal, struct RenderProps* props, SceneRenderCallback sceneRenderer, void* data, struct RenderState* renderState) { struct Vector3 forward = gForward; if (!(portal->flags & PortalFlagsOddParity)) { @@ -370,16 +388,7 @@ void portalRender(struct Portal* portal, struct Portal* otherPortal, struct Rend transformToMatrix(&finalTransform, portalTransform, SCENE_SCALE); if (props->currentDepth == 0 || !otherPortal) { - Mtx* matrix = renderStateRequestMatrices(renderState, 1); - - guMtxF2L(portalTransform, matrix); - gSPMatrix(renderState->dl++, matrix, G_MTX_MODELVIEW | G_MTX_PUSH | G_MTX_MUL); - if (portal->flags & PortalFlagsOddParity) { - gSPDisplayList(renderState->dl++, portal_portal_blue_filled_model_gfx); - } else { - gSPDisplayList(renderState->dl++, portal_portal_orange_filled_model_gfx); - } - gSPPopMatrix(renderState->dl++, G_MTX_MODELVIEW); + portalRenderCover(portal, portalTransform, renderState); return; } @@ -408,7 +417,11 @@ void portalRender(struct Portal* portal, struct Portal* otherPortal, struct Rend } if (nextProps.minX < nextProps.maxX && nextProps.minY < nextProps.maxY) { - renderPropsNext(props, &nextProps, &portal->transform, &otherPortal->transform, renderState); + if (!renderPropsNext(props, &nextProps, &portal->transform, &otherPortal->transform, renderState)) { + portalRenderCover(portal, portalTransform, renderState); + return; + } + sceneRenderer(data, &nextProps, renderState); // revert to previous state diff --git a/src/scene/portal.h b/src/scene/portal.h index e63ff81..46bcf08 100644 --- a/src/scene/portal.h +++ b/src/scene/portal.h @@ -56,7 +56,7 @@ struct RenderProps { }; void renderPropsInit(struct RenderProps* props, struct Camera* camera, float aspectRatio, struct RenderState* renderState, u16 roomIndex); -void renderPropsNext(struct RenderProps* current, struct RenderProps* next, struct Transform* fromPortal, struct Transform* toPortal, struct RenderState* renderState); +int renderPropsNext(struct RenderProps* current, struct RenderProps* next, struct Transform* fromPortal, struct Transform* toPortal, struct RenderState* renderState); void portalInit(struct Portal* portal, enum PortalFlags flags); void portalUpdate(struct Portal* portal, int isOpen); diff --git a/src/scene/scene.c b/src/scene/scene.c index 3cffab1..e6d64aa 100644 --- a/src/scene/scene.c +++ b/src/scene/scene.c @@ -95,6 +95,12 @@ void sceneInit(struct Scene* scene) { for (int i = 0; i < scene->elevatorCount; ++i) { elevatorInit(&scene->elevators[i], &gCurrentLevel->elevators[i]); } + + scene->pedestalCount = gCurrentLevel->pedestalCount; + scene->pedestals = malloc(sizeof(struct Pedestal) * scene->pedestalCount); + for (int i = 0; i < scene->pedestalCount; ++i) { + pedestalInit(&scene->pedestals[i], &gCurrentLevel->pedestals[i]); + } } void sceneRenderWithProperties(void* data, struct RenderProps* properties, struct RenderState* renderState) { @@ -103,7 +109,7 @@ void sceneRenderWithProperties(void* data, struct RenderProps* properties, struc u64 visibleRooms = 0; staticRenderDetermineVisibleRooms(&properties->cullingInfo, properties->fromRoom, &visibleRooms); - int closerPortal = vector3DistSqrd(&properties->camera.transform.position, &scene->portals[0].transform.position) > vector3DistSqrd(&properties->camera.transform.position, &scene->portals[1].transform.position) ? 0 : 1; + int closerPortal = vector3DistSqrd(&properties->camera.transform.position, &scene->portals[0].transform.position) < vector3DistSqrd(&properties->camera.transform.position, &scene->portals[1].transform.position) ? 0 : 1; int otherPortal = 1 - closerPortal; for (int i = 0; i < 2; ++i) { diff --git a/src/scene/scene.h b/src/scene/scene.h index 39ab053..dc65ecf 100644 --- a/src/scene/scene.h +++ b/src/scene/scene.h @@ -13,6 +13,7 @@ #include "./door.h" #include "./fizzler.h" #include "elevator.h" +#include "pedestal.h" struct Scene { struct Camera camera; @@ -23,6 +24,7 @@ struct Scene { struct Door* doors; struct Fizzler* fizzlers; struct Elevator* elevators; + struct Pedestal* pedestals; OSTime cpuTime; OSTime lastFrameStart; OSTime lastFrameTime; @@ -31,6 +33,7 @@ struct Scene { u8 doorCount; u8 fizzlerCount; u8 elevatorCount; + u8 pedestalCount; }; extern struct Scene gScene; diff --git a/src/sk64/skelatool_armature.c b/src/sk64/skelatool_armature.c index b31ac34..764e137 100644 --- a/src/sk64/skelatool_armature.c +++ b/src/sk64/skelatool_armature.c @@ -7,9 +7,16 @@ void skArmatureInit(struct SKArmature* object, Gfx* displayList, u32 numberOfBones, struct Transform* initialPose, unsigned short* boneParentIndex) { object->displayList = displayList; object->numberOfBones = numberOfBones; - object->boneTransforms = malloc(sizeof(Mtx) * numberOfBones); + + unsigned transformSize = sizeof(Mtx) * numberOfBones; + + object->boneTransforms = malloc(transformSize); if (initialPose) { - romCopy((void*)initialPose, (void*)object->boneTransforms, sizeof(Mtx) * numberOfBones); + if (IS_KSEG0(initialPose)) { + memCopy(object->boneTransforms, initialPose, transformSize); + } else { + romCopy((void*)initialPose, (void*)object->boneTransforms, transformSize); + } } object->boneParentIndex = boneParentIndex; } diff --git a/tools/generate_animation_ld.js b/tools/generate_animation_ld.js new file mode 100644 index 0000000..571067a --- /dev/null +++ b/tools/generate_animation_ld.js @@ -0,0 +1,24 @@ +const fs = require('fs'); +const path = require('path'); + +function generateLD(objectLocation) { + return ` + ${objectLocation}(.data); + ${objectLocation}(.bss); + `; +} + +function generateData(objectLocations) { + + return ` + BEGIN_SEG(animation_segment, 0x0D000000) + { + ${objectLocations.map(objectLocation => generateLD(objectLocation)).join('\n')} + } + END_SEG(animation_segment) + `; +} + +const output = process.argv[2]; + +fs.writeFileSync(output, generateData(process.argv.slice(3))); \ No newline at end of file