Commit graph

1610 commits

Author SHA1 Message Date
Matt Penny 64e2f0e5bf Doors block energy balls 2024-05-05 18:31:34 -04:00
Matt Penny fa26ac449e Support rotated doors and remove some unused door code 2024-05-05 18:26:30 -04:00
Matt Penny aecbda3071 Fix debug include for libultra controller 2024-05-04 12:07:36 -04:00
Matt Penny efb3f8da65 Detach door_02 frame from model
Door without frame is needed for chamber 15
2024-05-02 23:21:20 -04:00
Giacomo Garbin 167269c5d1
Decouple controls interface from libultra. (#60)
* Decouple controls interface from libultra.

* Use enums instead of defines for constant values.

* Get both controller stick axes with a single function call.

* Move controller .h\.c files to src/system folder and rename controller.c to controller_libultra.c.

* Adhere to enum and struct naming convention of the codebase.

* Fix typo: the N64 controller only has one analog stick.
2024-05-02 17:49:38 -04:00
Matt Penny ad6b32d022 Fix indicator light UVs in chamber 14
Strip near button was slightly stretched
2024-04-30 22:42:49 -04:00
Matt Penny e1ba9f20ef Properly mirror door textures in Blender
Matches in-game appearance
2024-04-30 22:39:21 -04:00
Deconimus 247e66fb62
Grab rotation flags (#58)
* introduced "enum GrabRotationFlags" for type-based grab behavior and added grab_rotation.c/.h to offload grabRotation code from player.c

* grab_rotation snap cube normals fix

* grab_rotation: some cleanup

* grab_rotation.c: simplify grabRotationInitBase + some cleanup
2024-04-22 18:44:18 -04:00
Matt Penny 86915350b8 Add newlib to Docker image (#59) 2024-04-14 11:21:54 -04:00
Matt Penny a1c2cc5407 Update development progress doc to indicate chamber 14 completion 2024-04-13 17:07:25 -04:00
Matt Penny f4cb8ddd31 Finish cutscene step documentation 2024-04-13 17:03:54 -04:00
Matt Penny 1a91f840c0 Document more cutscene steps
* set_signal
* clear_signal
* wait_for_signal
* teleport_player
* load_level
* label
* goto
* start_cutscene
* stop_cutscene
* wait_for_cutscene
2024-04-13 01:13:07 -04:00
Matt Penny bf5b8e0d28
Merge pull request #47 from GiacomoGarbin/replace_libnustd_with_glibc
Use newlib instead of libnustd.
2024-04-12 19:01:12 -04:00
Matt Penny 7005450479 Fix indicator lights for active signals across save/load 2024-04-11 22:44:03 -04:00
Matt Penny 9401198969 Use water hazard wall material in relevant chambers 2024-04-11 20:55:38 -04:00
Matt Penny 685f818114 Add material for water hazard wall 2024-04-11 19:55:34 -04:00
Matt Penny 73e81b3308
Merge pull request #56 from Deconimus/issue41_fizzler_frame_collision
Add collision for fizzler frames
2024-04-11 19:54:38 -04:00
Matt Penny a551de9890 Minor fizzler frame collision cleanup 2024-04-11 19:44:42 -04:00
Matt Penny f2eaa9483d
Merge pull request #57 from Deconimus/issue52_grab_y_offset
Tweak y offset minimum limit to match original game (and due to issue #52)
2024-04-06 18:30:41 -04:00
Deconimus 8676845cd7 tweak y offset minimum limit to match original game (and due to issue #52) 2024-04-06 23:10:56 +02:00
Matt Penny 4d621b69cc
Merge pull request #54 from Deconimus/issue52_grab_y_offset
Constrain y-offset of grab to match PC version and circumvent buggy behavior
2024-04-05 21:10:22 -04:00
Matt Penny 8abbcb0407 Slightly tweak max grab height
Original game allows a height of ~1 wall panel
2024-04-05 21:09:06 -04:00
Matt Penny 7129deec4a
Merge branch 'master' into issue52_grab_y_offset 2024-04-05 20:31:11 -04:00
Matt Penny d5fea9a796
Merge pull request #50 from Deconimus/grab_rotation_snap_cubenormals
Snap grab rotations to cube normals
2024-04-05 20:21:10 -04:00
Matt Penny 62c49ddcdf Remove collisionSceneGetPortalRotation() 2024-04-05 20:18:25 -04:00
Deconimus 97b31b4579 grab_rotation: simplifying playerInitGrabRotationBase() 2024-04-05 13:00:23 +02:00
Deconimus 4ca1c484f1 player grab rotation cleanup 2024-04-04 12:12:58 +02:00
GiacomoGarbin 0e240507e7 Math functions are part of libultra and not libnustd. 2024-04-03 00:02:43 +02:00
GiacomoGarbin 8bed9b6238 Address GH-47 issues raised in the comments.
Specifically:
* append all include search paths to LCINCS
* add LDDIRS to group all library search paths
* avoid link libm as math funtions are actually inside libultra
* use the shorthand -lc instead of -l:libc.a to link libc
2024-04-02 23:02:25 +02:00
Deconimus 83e94af894 add collision for fizzler frames 2024-04-02 22:52:10 +02:00
Deconimus 3c8c0d3234 Merge branch 'master' into grab_rotation_snap_cubenormals 2024-04-02 13:27:27 +02:00
Deconimus 70019f281a Merge branch 'master' into issue52_grab_y_offset 2024-04-02 13:26:52 +02:00
Matt Penny 618f147da6 Halve ball catcher sound volume (#51) 2024-04-01 18:17:09 -04:00
Matt Penny e81fa6f28a Extend, do not repeat plastic/plasticwall003a material
Reflect what the material actually looks like in-game
2024-04-01 17:31:15 -04:00
Matt Penny 3d5ede0e2e Revert "Add plastic/plasticwall003a material to materials.blend"
This reverts commit 0ddb70f8e6.
2024-04-01 16:58:15 -04:00
Deconimus 01a7a67536 constrain y-offset of grabbed object to match Portal-PC, circumventing buggy behavior documented in issue #52 2024-03-31 17:04:06 +02:00
Deconimus 7e3db77731 fix cube normal snapping (has been broken in cases where object's upwards direction wasn't equal to gUp) 2024-03-30 23:12:18 +01:00
Deconimus bce6a41fcb fix playerGetMoveBasis call in scene.c 2024-03-29 15:01:38 +01:00
Deconimus 847c5e3d2e Merge branch 'master' into grab_rotation_snap_cubenormals 2024-03-29 14:35:08 +01:00
Matt Penny e6447819fa Add some missing collision to chamber 14 2024-03-29 02:44:17 -04:00
Matt Penny 900d63db6e
Merge pull request #49 from GiacomoGarbin/valve_intro_video_mov
Valve intro video: try to load a MOV file if the BIK file doesn't exist.
2024-03-29 02:13:26 -04:00
Matt Penny 08db90d929 Chamber 14 lighting 2024-03-29 00:55:11 -04:00
Matt Penny 0ddb70f8e6 Add plastic/plasticwall003a material to materials.blend 2024-03-29 00:55:03 -04:00
Deconimus 56672ff562 grabRotation: snap all grabbed object rotation to cube normals
+ some related code refactoring
2024-03-29 00:35:51 +01:00
GiacomoGarbin f15aa17f42 Valve intro video: try to load a MOV file if the BIK file doesn't exist.
The macOS Portal version uses a .mov file, so if the .bik file doesn't exist, let's try that.
2024-03-28 18:43:00 +01:00
Matt Penny 8b69564561
Merge pull request #48 from mwpenny/chamber-14
Chamber 14 stair pit
2024-03-28 01:10:12 -04:00
Matt Penny 32f430fcab Fix chamber 14 room boundaries 2024-03-28 01:08:31 -04:00
Matt Penny 65120989ed Debounce chamber 14 stair raise signal
When loading a save file, the cube_retrieved signal is not immediately
set, which causes the stairs to raise.

Require the signal to be set for a few frames to avoid this.
2024-03-28 01:08:29 -04:00
Matt Penny 7dcd6432ec Show pit beneath chamber 14 stairs
A transparent portal surface allows portalability when the stairs are
lowered while not blocking visibility when they are raised.

During the descent, animated collisionless floor geometry is used as
cover so the real stairs can be moved out of the way.
2024-03-28 01:08:25 -04:00
Matt Penny 5603a1a23f Add material for transparent portal surfaces 2024-03-27 23:37:22 -04:00