mirror of
https://github.com/mwpenny/portal64-still-alive.git
synced 2024-10-19 22:27:36 -04:00
* started on chamber 15 * fizzler width can now be scaled via blender object's scale.x * fix fizzler rendering radius (remember, fizzlers are per default 2x2, still their internal width height was 1x1?) * chamber 15 first room functionally complete * chamber 15: first room decor * finished first room of chamber 15 * test chamber 15 second room WIP * chamber15 hallway from room 2 to room 3 (WIP) and more progress on room 2 * test chamber 15: added observation room to room2, added voice lines add the beginning * test chamber 15: finishing room 2 * enable "new game" menu entry for chamber 15 & boot into the intro menu again instead of straight into chamber 15 * Start on shamber 15 hazard hallway Hallway is modeled with collision. No platforms. * Decals and platform + light cutouts for chamber 15 hazard hallway * Animate one moving platform in chamber 15 hazard hallway This one animation is ~19 KB. Look at optimizing. * Add material for water hazard wall * Use water hazard wall material in chamber 15 * Start modelling final room of chamber 15 * Chamber 15 final room - side rooms * Chamber 15 final room - pistons and exit * Chamber 15 final room - observation room * Chamber 15 final room - ball launcher and catcher * Chamber 15 final room - ball trap and indicator lights * Chamber 15 final room - ball trap doors * Chamber 15 final room - collision * Chamber 15 final room - animations and triggers * Chamber 15 - escape hatch * Chamber 15 - finish final room * Chamber 15 - start on room 3 * Chamber 15 - main room 3 layout and collision * Fix UV translation Do not translate minimum coordinates, otherwise the translation will be cancelled out. * Chamber 15 - room 3 stair room * Chamber 15 - room 3 dividers and ball launcher/catcher * Chamber 15 - room 3 finishing touches * Observation room decor * Triggers * Indicator lights * Decals * Chamber 15 - merge beginning and end * Chamber 15 - fix room boundaries --------- Co-authored-by: Deconimus <pascal.sielski@gmx.de> Co-authored-by: Deconimus <Deconimus@users.noreply.github.com>
This commit is contained in:
parent
134be543ba
commit
1e8275eec3
7
Makefile
7
Makefile
|
@ -203,6 +203,7 @@ portal_pak_dir/materials/effects/portal_1_particle_orange.png: portal_pak_dir/ma
|
|||
$(VTF2PNG) -f 2 $< $@
|
||||
|
||||
portal_pak_dir/materials/signage/signage_overlay_fling1.png: portal_pak_dir/materials/signage/signage_overlay_fling2.png portal_pak_dir/materials/signage/signage_overlay_dots1.png portal_pak_dir/materials/signage/signage_overlay_dots2.png portal_pak_dir/materials/signage/signage_overlay_dots3.png portal_pak_dir/materials/signage/signage_overlay_dots4.png portal_pak_dir/materials/signage/signage_overlay_toxic.png portal_pak_dir/materials/signage/signage_overlay_fountain.png
|
||||
portal_pak_dir/materials/signage/signage_overlay_midair1.png: portal_pak_dir/materials/signage/signage_overlay_midair2.png
|
||||
portal_pak_dir/materials/signage/signage_exit.png: portal_pak_dir/materials/signage/signage_overlay_arrow.png portal_pak_dir/materials/signage/signage_overlay_boxdispenser.png portal_pak_dir/materials/signage/signage_overlay_boxhurt.png portal_pak_dir/materials/signage/signage_overlay_energyball.png portal_pak_dir/materials/signage/signage_overlay_catcher.png portal_pak_dir/materials/signage/signage_overlay_toxic.png portal_pak_dir/materials/signage/signage_overlay_fountain.png
|
||||
portal_pak_dir/materials/signage/indicator_lights/indicator_lights_floor.png: portal_pak_dir/materials/signage/indicator_lights/indicator_lights_corner_floor.png
|
||||
portal_pak_dir/materials/signage/indicator_lights/indicator_lights_floor_on.png: portal_pak_dir/materials/signage/indicator_lights/indicator_lights_corner_floor_on.png
|
||||
|
@ -408,7 +409,8 @@ ANIM_TEST_CHAMBERS = build/assets/test_chambers/test_chamber_00/test_chamber_00_
|
|||
build/assets/test_chambers/test_chamber_06/test_chamber_06_anim.o \
|
||||
build/assets/test_chambers/test_chamber_07/test_chamber_07_anim.o \
|
||||
build/assets/test_chambers/test_chamber_08/test_chamber_08_anim.o \
|
||||
build/assets/test_chambers/test_chamber_09/test_chamber_09_anim.o
|
||||
build/assets/test_chambers/test_chamber_09/test_chamber_09_anim.o \
|
||||
build/assets/test_chambers/test_chamber_10/test_chamber_10_anim.o
|
||||
|
||||
build/anims.ld: $(ANIM_LIST) $(ANIM_TEST_CHAMBERS) tools/generate_animation_ld.js
|
||||
@mkdir -p $(@D)
|
||||
|
@ -427,7 +429,8 @@ TEST_CHAMBERS = assets/test_chambers/test_chamber_00/test_chamber_00.blend \
|
|||
assets/test_chambers/test_chamber_06/test_chamber_06.blend \
|
||||
assets/test_chambers/test_chamber_07/test_chamber_07.blend \
|
||||
assets/test_chambers/test_chamber_08/test_chamber_08.blend \
|
||||
assets/test_chambers/test_chamber_09/test_chamber_09.blend
|
||||
assets/test_chambers/test_chamber_09/test_chamber_09.blend \
|
||||
assets/test_chambers/test_chamber_10/test_chamber_10.blend
|
||||
|
||||
TEST_CHAMBER_HEADERS = $(TEST_CHAMBERS:%.blend=build/%.h)
|
||||
TEST_CHAMBER_OBJECTS = $(TEST_CHAMBERS:%.blend=build/%_geo.o)
|
||||
|
|
6
assets/materials/signage/signage_overlay_midair1.ims
Normal file
6
assets/materials/signage/signage_overlay_midair1.ims
Normal file
|
@ -0,0 +1,6 @@
|
|||
-alpha off
|
||||
-resize 32x32 -repage +0+0
|
||||
\( portal_pak_dir/materials/signage/signage_overlay_midair2.png -alpha off -resize 32x32 -repage +32+0 \)
|
||||
|
||||
-compose Copy
|
||||
-layers merge
|
|
@ -1198,6 +1198,20 @@ materials:
|
|||
set: [G_SHADE]
|
||||
clear: [G_LIGHTING]
|
||||
|
||||
signage_overlay_midair1:
|
||||
gDPSetTile:
|
||||
filename: ../../portal_pak_modified/materials/signage/signage_overlay_midair1.png
|
||||
siz: G_IM_SIZ_4b
|
||||
fmt: G_IM_FMT_I
|
||||
|
||||
gDPSetCombineMode: G_CC_MODULATERGB
|
||||
gDPSetCycleType: G_CYC_1CYCLE
|
||||
gDPSetRenderMode: G_RM_RA_ZB_OPA_DECAL
|
||||
|
||||
gSPGeometryMode:
|
||||
set: [G_SHADE]
|
||||
clear: [G_LIGHTING]
|
||||
|
||||
signage_doorstate:
|
||||
gDPSetTile:
|
||||
filename: ../../portal_pak_modified/materials/signage/signage_doorstate.png
|
||||
|
|
1
assets/sound/vo/aperture_ai/10_part1_entry-1.sox
Normal file
1
assets/sound/vo/aperture_ai/10_part1_entry-1.sox
Normal file
|
@ -0,0 +1 @@
|
|||
-c 1 -r 22050
|
1
assets/sound/vo/aperture_ai/10_part1_entry-2.sox
Normal file
1
assets/sound/vo/aperture_ai/10_part1_entry-2.sox
Normal file
|
@ -0,0 +1 @@
|
|||
-c 1 -r 22050
|
1
assets/sound/vo/aperture_ai/10_part1_entry-3.sox
Normal file
1
assets/sound/vo/aperture_ai/10_part1_entry-3.sox
Normal file
|
@ -0,0 +1 @@
|
|||
-c 1 -r 22050
|
1
assets/sound/vo/aperture_ai/10_part1_success-1.sox
Normal file
1
assets/sound/vo/aperture_ai/10_part1_success-1.sox
Normal file
|
@ -0,0 +1 @@
|
|||
-c 1 -r 22050
|
Binary file not shown.
BIN
assets/test_chambers/test_chamber_10/test_chamber_10.blend
Normal file
BIN
assets/test_chambers/test_chamber_10/test_chamber_10.blend
Normal file
Binary file not shown.
80
assets/test_chambers/test_chamber_10/test_chamber_10.yaml
Normal file
80
assets/test_chambers/test_chamber_10/test_chamber_10.yaml
Normal file
|
@ -0,0 +1,80 @@
|
|||
cutscenes:
|
||||
INTRO:
|
||||
- q_sound AMBIENCE_BASE CH_AMBIENT SubtitleKeyNone 0.55
|
||||
SIGNAGE:
|
||||
- activate_signage 15
|
||||
- q_sound 10_PART1_ENTRY_1 CH_GLADOS PORTAL_10_PART1_ENTRY_1
|
||||
- q_sound 10_PART1_ENTRY_2 CH_GLADOS PORTAL_10_PART1_ENTRY_2
|
||||
- q_sound 10_PART1_ENTRY_3 CH_GLADOS PORTAL_10_PART1_ENTRY_3
|
||||
ROOM2:
|
||||
- set_signal room2_launch_ball
|
||||
- wait_for_signal room2_solved
|
||||
- save_checkpoint
|
||||
- label room2_piston_loop
|
||||
- play_animation room2_piston piston_move_down
|
||||
- wait_for_signal room2_on_piston
|
||||
- play_animation room2_piston piston_move_down -1
|
||||
- wait_for_signal room2_piston_needed
|
||||
- goto room2_piston_loop
|
||||
ROOM_3_CHECKPOINT:
|
||||
- save_checkpoint
|
||||
ENTERED_ROOM_3:
|
||||
- set_signal room_3_ball_launcher
|
||||
- wait_for_signal hallway_platforms_activate
|
||||
- start_cutscene HAZARD_HALLWAY_CHECKPOINT
|
||||
# TODO: start platform spawn
|
||||
HAZARD_HALLWAY_CHECKPOINT:
|
||||
- wait_for_signal in_hazard_hallway_checkpoint
|
||||
- save_checkpoint
|
||||
DROWN_PLAYER:
|
||||
- kill_player water
|
||||
ENTERED_FINAL_ROOM:
|
||||
- set_signal final_room_ball_launcher
|
||||
- start_cutscene SWITCH_ROOM_1_PISTON
|
||||
- start_cutscene SWITCH_ROOM_2_PISTON
|
||||
- start_cutscene CHECK_TRAPPED
|
||||
# TODO: disable spawning (looping) of hazard hallway platforms
|
||||
- save_checkpoint
|
||||
|
||||
- wait_for_signal exit_activate
|
||||
- save_checkpoint
|
||||
- q_sound 10_PART1_SUCCESS_1 CH_GLADOS PORTAL_10_PART1_SUCCESS_1
|
||||
|
||||
- label exit_piston_loop
|
||||
- play_animation exit_piston exit_down
|
||||
- wait_for_signal on_exit_piston
|
||||
- play_animation exit_piston exit_down -1
|
||||
- wait_for_signal not_on_exit_piston
|
||||
- goto exit_piston_loop
|
||||
SWITCH_ROOM_1_PISTON:
|
||||
- label piston_loop
|
||||
- play_animation switch_room_1 switch_room_1_down
|
||||
- wait_for_signal on_switch_room_1_piston
|
||||
- play_animation switch_room_1 switch_room_1_down -1
|
||||
- wait_for_signal not_on_switch_room_1_piston
|
||||
- goto piston_loop
|
||||
SWITCH_ROOM_2_PISTON:
|
||||
- label piston_loop
|
||||
- play_animation switch_room_2 switch_room_2_down
|
||||
- wait_for_signal on_switch_room_2_piston
|
||||
- play_animation switch_room_2 switch_room_2_down -1
|
||||
- wait_for_signal not_on_switch_room_2_piston
|
||||
- goto piston_loop
|
||||
CHECK_TRAPPED:
|
||||
- label trapped_loop
|
||||
- wait_for_signal trapped 30
|
||||
- q_sound 07_PART1_TRAPPED_1 CH_GLADOS PORTAL_07_PART1_TRAPPED_1
|
||||
- q_sound 07_PART1_TRAPPED_2 CH_GLADOS PORTAL_07_PART1_TRAPPED_2
|
||||
- wait_for_channel CH_GLADOS
|
||||
- play_animation escape_hatch escape_hatch_open
|
||||
- wait_for_signal not_in_ball_trap 30
|
||||
- play_animation escape_hatch escape_hatch_open -1
|
||||
- goto trapped_loop
|
||||
operators:
|
||||
- not_on_exit_piston = not on_exit_piston
|
||||
- not_on_switch_room_1_piston = not on_switch_room_1_piston
|
||||
- not_on_switch_room_2_piston = not on_switch_room_2_piston
|
||||
- ball_trap_open = ball_door_1 and ball_door_2
|
||||
- ball_trap_closed = not ball_trap_open
|
||||
- trapped = ball_trap_closed and in_ball_trap
|
||||
- not_in_ball_trap = not in_ball_trap
|
|
@ -41,3 +41,4 @@ The possible values for `SOUND_TYPE_NAME` are:
|
|||
* `Piston`: Vertical moving platform sound
|
||||
* `Arm`: Horizontal moving wall sound
|
||||
* `Stairs`: Ascending/descending staircase sound
|
||||
* `Door`: Door open/close sound
|
||||
|
|
|
@ -14,13 +14,13 @@ Static level geometry. Used to generate level mesh and portal surface data.
|
|||
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `no_portals` (optional) | If specified, the surface will not be considered portalable, regardless of its material name |
|
||||
| `indicator_lights SIGNAL_NAME` (optional) | If specified and the indicator light or door state material is used, it will be switched to the corresponding "active" variant when the specified [signal](../signals.md) is set |
|
||||
| `uvtransx TRANS_X` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, translates UV coordinates by `TRANS_X` on the X axis |
|
||||
| `uvtransy TRANS_Y` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, translates UV coordinates by `TRANS_Y` on the Y axis |
|
||||
| `uvtransz TRANS_Z` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, translates UV coordinates by `TRANS_Z` on the Z axis |
|
||||
| `uvrotx ROT_X` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, rotates UV coordinates by `ROT_X` degrees on the X axis |
|
||||
| `uvroty ROT_Y` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, rotates UV coordinates by `ROT_Y` degrees on the Y axis |
|
||||
| `uvrotz ROT_Z` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, rotates UV coordinates by `ROT_Z` degrees on the Z axis |
|
||||
| `uvscale SCALE` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, scales UV coordinates by `SCALE/tileSize` in each direction |
|
||||
| `uvtransx TRANS_X` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, translates UV coordinates by `TRANS_X` on the X axis. Defaults to 0. |
|
||||
| `uvtransy TRANS_Y` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, translates UV coordinates by `TRANS_Y` on the Y axis. Defaults to 0. |
|
||||
| `uvtransz TRANS_Z` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, translates UV coordinates by `TRANS_Z` on the Z axis. Defaults to 0. |
|
||||
| `uvrotx ROT_X` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, rotates UV coordinates by `ROT_X` degrees on the X axis. Defaults to 0. |
|
||||
| `uvroty ROT_Y` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, rotates UV coordinates by `ROT_Y` degrees on the Y axis. Defaults to 0. |
|
||||
| `uvrotz ROT_Z` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, rotates UV coordinates by `ROT_Z` degrees on the Z axis. Defaults to 0. |
|
||||
| `uvscale SCALE` (optional) | If specified and the material has `tileSizeS` and `tileSizeT` properties, scales UV coordinates by `SCALE/tileSize` in each direction. Defaults to 1. |
|
||||
|
||||
## Notes
|
||||
|
||||
|
|
|
@ -458,7 +458,7 @@ void cubeProjectSingleFace(aiMesh* mesh, std::set<aiFace*>& faces, double sTile,
|
|||
for (unsigned i = 0; i < face->mNumIndices; ++i) {
|
||||
aiVector3D vertex = mesh->mVertices[face->mIndices[i]];
|
||||
|
||||
vertex = rotation.Rotate(vertex) + translation;
|
||||
vertex = rotation.Rotate(vertex);
|
||||
|
||||
minLeft = std::min(minLeft, vertex * left);
|
||||
minUp = std::min(minUp, vertex * up);
|
||||
|
|
|
@ -272,7 +272,8 @@ enum AnimationSoundType {
|
|||
AnimationSoundTypeLightRail,
|
||||
AnimationSoundTypePiston,
|
||||
AnimationSoundTypeArm,
|
||||
AnimationSoundTypeStairs
|
||||
AnimationSoundTypeStairs,
|
||||
AnimationSoundTypeDoor
|
||||
};
|
||||
|
||||
struct AnimationInfo {
|
||||
|
|
|
@ -259,6 +259,8 @@ int getChamberDisplayNumberFromLevelIndex(int levelIndex, int roomIndex){
|
|||
return 13;
|
||||
case 9:
|
||||
return 14;
|
||||
case 10:
|
||||
return 15;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
@ -291,6 +293,8 @@ int getLevelIndexFromChamberDisplayNumber(int chamberNumber) {
|
|||
return 8;
|
||||
case 14:
|
||||
return 9;
|
||||
case 15:
|
||||
return 10;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ struct Chapter gChapters[] = {
|
|||
{images_chapter4_rgba_16b, 6, 10},
|
||||
{images_chapter5_rgba_16b, 8, 13},
|
||||
{images_chapter6_rgba_16b, 9, 14},
|
||||
{images_chapter7_rgba_16b, -1, 15},
|
||||
{images_chapter7_rgba_16b, 10, 15},
|
||||
{images_chapter8_rgba_16b, -1, 16},
|
||||
{images_chapter9_rgba_16b, -1, 17},
|
||||
{images_chapter10_rgba_16b, -1, 18},
|
||||
|
|
|
@ -21,6 +21,7 @@ struct AnimatedAudioInfo gAnimatedAudioInfo[] = {
|
|||
{.startSoundId = SOUNDS_DOORMOVE1, .loopSoundId = SOUND_ID_NONE, .endSoundId = SOUND_ID_NONE, .pitch = 0.4f},
|
||||
{.startSoundId = SOUNDS_TANK_TURRET_START1, .loopSoundId = SOUNDS_TANK_TURRET_LOOP1, .endSoundId = SOUNDS_ELEVATOR_STOP1, .pitch = 0.5f},
|
||||
{.startSoundId = SOUNDS_APC_START_LOOP3, .loopSoundId = SOUNDS_DOOR_METAL_MEDIUM_OPEN1, .endSoundId = SOUNDS_APC_SHUTDOWN, .pitch = 0.5f},
|
||||
{.startSoundId = SOUNDS_DOOR_METAL_THIN_CLOSE2, .loopSoundId = SOUND_ID_NONE, .endSoundId = SOUND_ID_NONE, .pitch = 0.5f},
|
||||
};
|
||||
|
||||
void sceneAnimatorInit(struct SceneAnimator* sceneAnimator, struct AnimationInfo* animationInfo, int animatorCount) {
|
||||
|
|
Loading…
Reference in a new issue