Commit graph

1424 commits

Author SHA1 Message Date
Matt Penny 2b09deb1fe Fix off by one error which omitted final frame of animations 2024-03-16 00:47:29 -04:00
Matt Penny 35e9d433a4 Read level animation sound from first specifying bone, and play from armature center
Removes multi-bone animation dependency on bone order for audio, and
allows the sound to play as long as one bone is still moving. The center
is also a more natural sound position.

This is needed for the chamber 14 stairs.
2024-03-13 01:03:41 -04:00
Matt Penny f16f88a73a Close portals touched by moving dynamic collision
This allows collision brushing up against portals to close them, such as
the stairs in chamber 14, making it more difficult to get underneath.

Dynamic collision part of the same animation as the portal is excluded.
2024-03-12 22:18:41 -04:00
Matt Penny 54f0666045
Merge pull request #35 from Deconimus/pr31split_keep_objects_in_front
Keep grabbed objects in front of player & savegame grab through portals fix
2024-03-12 12:09:15 -04:00
Deconimus 7d48221146 rotate grabbed objects towards players' forwards direction (XZ-plane) instead of looking direction 2024-03-12 14:19:50 +01:00
Deconimus b6afce6e0a Merge branch 'master' into pr31split_keep_objects_in_front 2024-03-12 12:25:53 +01:00
Matt Penny 87af5a059c
Merge pull request #36 from Deconimus/encapsulate_decorIdFromCollisionObject
Encapsulate looking up a decorId from CollisionObjects
2024-03-11 23:29:16 -04:00
Deconimus 64bcfe30aa encapsulate the hacky way of looking up a decor type id from CollisionObjects into the function decorIdForCollisionObject(struct CollisionObject*) 2024-03-09 14:42:14 +01:00
Deconimus b6fdc1116e keep grabbed objects in front of player.
fix grabbed objects being let go of when loading a savegame in which the player was grabbing through a portal.
2024-03-09 13:46:38 +01:00
Matt Penny a2d57343e7
Merge pull request #34 from Deconimus/pr32fix_throw_direction_portals
Throw direction fix when grabbing through portal
2024-03-08 17:45:35 -05:00
Matt Penny 53605070f3 Create function to share portal grab transform code between held object throw and update 2024-03-08 17:42:56 -05:00
Deconimus 8eb474856c fix throw direction when throwing a grabbed object that is being held through a portal 2024-03-08 17:43:45 +01:00
Matt Penny a873ab233b
Merge pull request #32 from Deconimus/issue_26_dont_fire_portal_whith_grabbed_object
Dont fire portal with grabbed object or from pause menu
2024-03-07 23:10:32 -05:00
Deconimus 689f7a9358 replace obsolete ignorePortalGun with controllerActionMuteActive() 2024-03-08 02:04:12 +01:00
Matt Penny 88d393b3a2
Merge pull request #29 from Deconimus/issue_25_security_cam_savefile
Serialize / deserialize detached security cameras in savegames (fixes #25)
2024-03-07 08:36:10 -05:00
Deconimus 3bf2d80d63 replace all security_camera related ridigbody flag checks regarding kinematic with the securityCameraIsDetached function 2024-03-07 13:09:34 +01:00
Deconimus d5418db73d make security_camera serialization object oriented again 2024-03-07 12:47:20 +01:00
Matt Penny 26e39d0353 Clarify Blender version in file formats documentation 2024-03-06 21:10:30 -05:00
Deconimus 73900f76f7 fix portal fire from exiting pause menu + improved ignorePortalGun logic 2024-03-05 23:30:14 +01:00
Deconimus eee2c25890 player throw impulse now scales with mass of grabbed object, to ensure every object is thrown the same distance 2024-03-05 22:54:03 +01:00
Deconimus 43b5a83f6f throw grabbed objects when using the portal buttons 2024-03-05 20:33:49 +01:00
Deconimus d7b2bcfe67 prevent portalgun from firing when dropping a grabbed object 2024-03-05 19:16:34 +01:00
Deconimus b23e22bb34 scene_serialize: serialize and deserialize security cameras
security_camera: replaced hardcoded mass of 1.0f with SECURITY_CAMERA_RIGID_BODY_MASS definition in header. added utility function to calculate security_camera moment_of_inertia, making it accessible to scene_serialize for deserialization due to rigidBodyUnmarkKinematic
2024-03-04 13:24:06 +01:00
Matt Penny e2b3fcdd8d Prevent placing portals under test elements in chambers 11, 12, and 14
The following static geometry was previously not marked with `no_portals`:

* Walls behind ball launcher and catcher in chamber 11
* Floor beneath button in chamber 12
* Wall behind ball launcher in chamber 14
2024-03-02 22:33:01 -05:00
Matt Penny 6a1a7994b9 Avoid unnecessary signal definition
* Don't generate button cube signal if -1 or omitted
* Require button press, door, and box dropper signals to be specified
2024-03-02 22:03:13 -05:00
Matt Penny cd72779930
Merge pull request #19 from Deconimus/bug_13_fizzler_voice_lines
Fizzler Cutscenes and Voice Lines in Chamber00 and Chamber12
2024-03-02 16:06:40 -05:00
Matt Penny 754273d955 Update fizzler docs, and consistent spacing 2024-03-02 16:06:26 -05:00
Matt Penny 74ba106faf Save test chambers in Blender 3.6 2024-03-02 15:40:03 -05:00
Deconimus 984dd65d2c fix fizzler optional signals generating unnecessary signals.
in test_chamber blender files, renamed @fizzler objects to not cause generation of unused signals.
removed "parse_trigger_signal" in trigger.lua, added "optional_signal_index_for_name", which is used for both trigger signals and fizzler signals.
added check in fizzler.c if signal is -1
2024-03-02 03:19:44 +01:00
Deconimus 59cdb047ec Merge branch 'master' into bug_13_fizzler_voice_lines 2024-03-02 02:23:25 +01:00
Matt Penny 5e70af8e82
Merge pull request #15 from Deconimus/chamber14_trapped_check
Chamber14 trapped check
2024-03-01 09:08:36 -05:00
Matt Penny 2cc4b37757 Rename button pressFrames to cubePressFrames for clarity 2024-03-01 09:07:49 -05:00
Deconimus 2da3537c82 button.c: cleanup, removed unnecessary check 2024-03-01 12:48:14 +01:00
Matt Penny 3d6e9db6bc
Merge pull request #16 from Deconimus/chamber_04_trapped_check
Chamber 04 Escape Hatch
2024-02-29 12:09:13 -05:00
Matt Penny db1bb3f5ea Chamber 4 signal operators before chamber 5 signal operators 2024-02-29 12:05:22 -05:00
Deconimus 026332c5bd Level logic cleanup for test_chamber_00.yaml and test_chamber_07.yaml 2024-02-29 14:51:18 +01:00
Deconimus 5862ed99c2 Chamber04: set wait time in CHECK_TRAPPED to ~6 seconds
test_chamber_02.yaml: operator sorting
2024-02-29 13:28:42 +01:00
Deconimus df9d4acaac Merge branch 'chamber14_trapped_check' of https://github.com/Deconimus/portal64-still-alive into chamber14_trapped_check
Reverted commits related to deactivating buttons.
2024-02-29 13:20:26 +01:00
Deconimus d5b7d16f01 added cube_near_button trigger to chamber14
cleaned up level logic of chamber14
fixed buttons sending cubeSignals when colliding with triggers
2024-02-29 13:18:02 +01:00
Deconimus e3206fdf6e disabled movement of button if deactivated to match behavior in Portal 2024-02-28 21:54:42 +01:00
Deconimus 20b253ec33 Added functionality to deactivate buttons via signals. A third argument can be provided for button objects in .blend files, the new syntax is: "@button <signalIndex> <cubeSignalIndex> <deactivateSignalIndex>"
Chamber14: deactivate button if escape_hatch signal is turned on (via either escape hatch cutscene or exploding door cutscene)
2024-02-28 21:35:17 +01:00
Deconimus 2ae683d6f4 chamber14: added cutscene for exploding door when taking the cube off the button 2024-02-28 19:04:32 +01:00
Deconimus 5442ca5f38 temporarily deactive cube_dropper while playing a cube_fizzled cutscene in chamber00 and chamber12 to sync the cube dropping with the voice lines 2024-02-28 15:12:02 +01:00
Deconimus c401da07db chamber12: added cube_fizzled signal to fizzler and added cutscene to play voice-lines 2024-02-28 14:36:43 +01:00
Deconimus 3d37c2504c enabled fizzler objects to send signals on cube contact, the "@fizzler" objects in blender files now can have an argument for the signal name to send.
test_chamber_00: added level logic to trigger voice lines whenever the cube in the first room is fizzled.
added missing voice lines
box_dropper.c: fixed typo "DROPPER_.." instead of "DROOPER_.."

(Issue #13)
2024-02-28 13:32:44 +01:00
Deconimus 93d6d33b2b Chamber 04: add trigger for cube in corridor; add cutscene to check for cube in corridor, opening the "escape hatch" like in Portal Non-64 2024-02-28 13:16:43 +01:00
Deconimus a22f255bb0 Merge branch 'master' into chamber14_trapped_check 2024-02-27 22:02:09 +01:00
Deconimus 0d268b3885 test chamber 14: added a trigger to check for cube placement on top of piston, added CHECK_TRAPPED cutscene to simulate behavior of the original game when placing the cube on top of the piston 2024-02-27 22:00:39 +01:00
Matt Penny 672d4b558d Document delay and open/close portal cutscene steps 2024-02-26 22:30:57 -05:00
Matt Penny 1aa3903b85 Document sound-related cutscene steps 2024-02-26 22:30:56 -05:00