Commit graph

1447 commits

Author SHA1 Message Date
Matt Penny f3ab06c9dc Confirm when starting new game while in a level 2024-03-24 20:50:01 -04:00
Matt Penny a3cde0c690 Confirm before quitting 2024-03-24 20:49:47 -04:00
Matt Penny 03034a3868 Re-enable freecam
Previous camera changes caused the freecam transform to not be applied
2024-03-23 22:45:22 -04:00
Matt Penny 2f5a377b7f Add decals, observation room decor, and indicator lights to chamber 14 2024-03-23 22:43:24 -04:00
Matt Penny fb4fe2a251 Add autosave and water death triggers to chamber 14 2024-03-23 19:02:54 -04:00
Matt Penny 3c3f79a839 Prevent platform in chamber 11 from closing portal 2024-03-23 18:45:29 -04:00
Matt Penny 686fb284b6 Chamber 9 level object reorganization
No changes to the level itself
2024-03-22 20:27:41 -04:00
Matt Penny fb418a9816 Add autosaves to chambers 11 and 12 2024-03-22 20:23:03 -04:00
Matt Penny 8b4a128756 For all chambers, start ambient sound at elevator 2024-03-22 20:10:07 -04:00
Matt Penny 9d1ea7ecfe
Merge pull request #20 from hackgrid/ambience-sound-1
add ambience sound to test_chamber_08/09
2024-03-22 18:59:02 -04:00
Matt Penny b4e65fc4d2 Start chamber 14 ambience in elevator 2024-03-22 18:53:39 -04:00
Matt Penny 4109701d66 Merge branch 'master' into ambience-sound-1 2024-03-22 18:37:48 -04:00
Matt Penny c15576dfa7
Merge pull request #42 from mwpenny/chamber-14
Chamber 14 stairs first iteration
2024-03-20 23:21:56 -04:00
Matt Penny eaf1a3012d Finalize chamber 14 stairs first iteration
Next iteration will focus on making the pit beneath the stairs visible
while ideally allowing portals to be placed during the descend
animation.

Ideas include a transparent portal surface with either separately
animated step collision (to hide it beneath the level) or an animated
piece of floor geometry to act as a cover.
2024-03-20 22:16:09 -04:00
Matt Penny 236e7993c4 More performant collision detection between portals and moving dynamic collision
Short circuit if bounding boxes do not intersect
2024-03-20 22:12:00 -04:00
Matt Penny 1318e8ec4b Don't cull animated objects in rooms where many exist
Calculating whether or not to cull many objects can be more expensive
than rendering them
2024-03-20 21:14:11 -04:00
Matt Penny 8e6a854b8a Portal placement on descended chamber 14 stairs
This is currently implemented by having the stairs simply descend
beneath the floor. The floor cannot disappear/reappear dynamically until
issue #40 is fixed and portals work properly on dynamic collision. For now,
the behind-the-scenes pit is not shown as a result.

To do:
* Investigate engine optimization opportunities
* Reduce static element count if proven to be necessary
* Look into other ways to handle the floor
2024-03-16 19:22:41 -04:00
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
Matt Penny ef5b032fc6 Add sound to chamber 14 stair animations 2024-03-11 21:25:49 -04:00
Matt Penny 020b181499 Animate chamber 14 stairs
Added ascend/descend animation, triggers, and dynamic collision.

Next steps:
* Simplify collision (currently quite expensive)
* Destroy portals during ascend animation
2024-03-11 19:38:53 -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
Matt Penny b2aa24724e Beginnings of chamber 14 stairs
Created steps, pit, static collision, and armature.

Still need to:
* Create proper animation
* Add triggers
* Convert static collision to dynamic
* Make portals work
2024-03-05 23:40:50 -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