Commit graph

1588 commits

Author SHA1 Message Date
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
Deconimus 5e6425075d make fizzler width scale with blender scale & fix rendering bug which used to cause fizzlers from disappearing at some viewing angles 2024-03-21 22:54:42 +01: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
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
hackgrid 41eb36c82d
fix ambience sound est_chamber_09 2024-03-01 14:06:53 +01:00
hackgrid 21362ed407
add ambience sound to test_chamber_09 2024-03-01 13:07:01 +01:00
hackgrid 7062d9a88d
add ambience sound to test_chamber_08 2024-03-01 13:05:04 +01: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