diff --git a/assets/materials/static.skm.yaml b/assets/materials/static.skm.yaml index 4cfb89a..1b77de9 100644 --- a/assets/materials/static.skm.yaml +++ b/assets/materials/static.skm.yaml @@ -348,7 +348,7 @@ materials: ../../portal_pak_modified/materials/models/props/door_02.png siz: G_IM_SIZ_16b fmt: G_IM_FMT_RGBA - t: + s: mirror: true gSPGeometryMode: set: [G_LIGHTING, G_SHADE] diff --git a/assets/models/props/door_02.blend b/assets/models/props/door_02.blend index 4321c41..2c7bc2d 100644 Binary files a/assets/models/props/door_02.blend and b/assets/models/props/door_02.blend differ diff --git a/assets/models/props/door_02.flags b/assets/models/props/door_02.flags index 6055548..8c12443 100644 --- a/assets/models/props/door_02.flags +++ b/assets/models/props/door_02.flags @@ -1 +1 @@ --m assets/materials/static.skm.yaml -m assets/materials/objects.skm.yaml --default-material door_02 \ No newline at end of file +-r 90,0,0 -m assets/materials/static.skm.yaml -m assets/materials/objects.skm.yaml --default-material door_02 --fps 24 \ No newline at end of file diff --git a/assets/test_chambers/test_chamber_07/test_chamber_07.blend b/assets/test_chambers/test_chamber_07/test_chamber_07.blend index 66b7933..6d688e0 100644 Binary files a/assets/test_chambers/test_chamber_07/test_chamber_07.blend and b/assets/test_chambers/test_chamber_07/test_chamber_07.blend differ diff --git a/src/main.c b/src/main.c index 320fd0e..2a66a93 100644 --- a/src/main.c +++ b/src/main.c @@ -161,7 +161,7 @@ static void gameProc(void* arg) { contactSolverInit(&gContactSolver); portalSurfaceCleanupQueueInit(); savefileNew(); - levelLoad(2); + levelLoad(7); cutsceneRunnerReset(); controllersInit(); initAudio(fps); diff --git a/src/models/models.c b/src/models/models.c index c6d9715..9ba13ed 100644 --- a/src/models/models.c +++ b/src/models/models.c @@ -18,9 +18,6 @@ Gfx* w_portal_gun_gfx = &portal_gun_w_portalgun_model_gfx[0]; Gfx* button_gfx = &props_button_model_gfx[0]; short button_material_index = BUTTON_INDEX; -Gfx* door_01_gfx = &props_door_01_model_gfx[0]; -short door_01_material_index = DOOR_01_INDEX; - Gfx* cylinder_gfx = &props_cylinder_test_model_gfx[0]; short cylinder_material_index = PLASTIC_PLASTICWALL001A_INDEX; diff --git a/src/models/models.h b/src/models/models.h index fd45ccb..d22aade 100644 --- a/src/models/models.h +++ b/src/models/models.h @@ -8,12 +8,6 @@ extern Gfx* w_portal_gun_gfx; extern Gfx* button_gfx; extern short button_material_index; -extern Gfx* door_01_gfx; -extern short door_01_material_index; - -extern Gfx* door_01_gfx; -extern short door_01_material_index; - extern Gfx* cylinder_gfx; extern short cylinder_material_index; diff --git a/src/scene/door.c b/src/scene/door.c index 40904b7..1e5c916 100644 --- a/src/scene/door.c +++ b/src/scene/door.c @@ -10,6 +10,8 @@ #include "../physics/collision_box.h" #include "../physics/collision_scene.h" +#include "../build/assets/materials/static.h" + #include "../build/assets/models/props/door_01.h" #include "../build/assets/models/props/door_02.h" @@ -35,6 +37,7 @@ struct DoorTypeDefinition gDoorTypeDefinitions[] = { &props_door_01_model_gfx[0], &props_door_01_Armature_open_clip, &props_door_01_Armature_close_clip, + DOOR_01_INDEX, -1, 1.0f, }, @@ -43,6 +46,7 @@ struct DoorTypeDefinition gDoorTypeDefinitions[] = { &props_door_02_model_gfx[0], &props_door_02_Armature_open_clip, &props_door_02_Armature_close_clip, + DOOR_02_INDEX, PROPS_DOOR_02_DOOR_BONE, 3.0f, }, @@ -51,6 +55,7 @@ struct DoorTypeDefinition gDoorTypeDefinitions[] = { void doorRender(void* data, struct DynamicRenderDataList* renderList, struct RenderState* renderState) { struct Door* door = (struct Door*)data; Mtx* matrix = renderStateRequestMatrices(renderState, 1); + struct DoorTypeDefinition* typeDefinition = &gDoorTypeDefinitions[door->doorDefinition->doorType]; if (!matrix) { return; @@ -71,7 +76,7 @@ void doorRender(void* data, struct DynamicRenderDataList* renderList, struct Ren skCalculateTransforms(&door->armature, armature); - dynamicRenderListAddData(renderList, door_01_gfx, matrix, door_01_material_index, &door->rigidBody.transform.position, armature); + dynamicRenderListAddData(renderList, typeDefinition->model, matrix, typeDefinition->materialIndex, &door->rigidBody.transform.position, armature); } void doorInit(struct Door* door, struct DoorDefinition* doorDefinition, struct World* world) { diff --git a/src/scene/door.h b/src/scene/door.h index 9e50627..eec1d54 100644 --- a/src/scene/door.h +++ b/src/scene/door.h @@ -17,6 +17,7 @@ struct DoorTypeDefinition { Gfx* model; struct SKAnimationClip* openClip; struct SKAnimationClip* closeClip; + short materialIndex; short colliderBoneIndex; float closeSpeed; };