forked from magcius/noclip.website
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pull] master from magcius:master #129
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Nothing is fully working yet, but all of the main classes are in place
* Mostly implemented TVariableValue * Mostly implemented TAdaptor * Filled out some missing enum values related to TCamera * Void, Immediate, and Time TVariableValue updates are supported * Implemented JStudio::TObject base class Next TODOs: * Implement TFunctionValue * Implement FVB parsing
* Uncommented update() and remove() * Fixed up some errors preventing Camera data updates
Implemented most of the skeleton of FVB, although still missing implementations for most of the various function variable implementations.
…y through to the Demo camera, and they seem reasonable. - Fixed some issues in the BSpline interpolation implementation
…otation. Confirmed that the camera position (both eye and target) are working as expected with demo51.stb (the Wind Waker opening cutscene). Woo!
…ce NaNs at the end of the sequence I was incorrectly checking for an invalid curKeyIdx (because of the `/ 2`) which was skipping the end-of-list check and attempting to interpolate off the end of the array.
It currently overrides the camera parameters in d_s_play.execute(), but this is not correct. I need to find the proper place/method for this.
…s now a selectable Scene.
Adjacent to the array of SceneDescs there is now an array of DemoDescs. Contains the name, arc file, stb index, origin, and rotation. All the data needed to load and play the demo, except for the scene it is expected to be in.
Resuming the demo will snap the camera back to the demo camera
…ave been set on the demo cam.
Also made dStage_roomStatus_c a member of dStage_roomStatus_c, instead of its parent class. This is closer to the structure of the game, which will make it easier to add roomControl features in upcoming commits
The LBNK section of the Room info contains a u8 for each of the 12 layers. This int is the index of the Demo arc that the stage expects to be loaded for that layer (or 0xFF for no arc). For instance, Outset Island (Room 44 of 'sea') specifies 0x02 in LBNK[0]. It expects Objects/Demo02.arc to be loaded. Demo events will then load demos using filenames that map into that arc. In the game, this occurs just after dStage_dt_c_roomLoader() is called, during phase 2 of dScnRoom_Create().
… access STBs from the stage's demo arc
They were extracted from the game using a modified version of the excellent wwrando/wwlib/stage_searcher.py script from LagoLunatic. Most of this data comes from the PLAY action of the PACKAGE actor in an event from a Stage's event_list.dat. This action has properties for the room and layer that these cutscenes are designed for. HOWEVER, this data is often missing. It has been reconstructed by cross-referencing each Room's lbnk section (which points to a Demo*.arc file for each layer), the .stb files contained in each of those Objects/Demo*.arc files, and the FileName attribute from the event action.
This also adds support for playing cutscenes in Scenes with multiple rooms loaded (e.g. Great Sea)
That file is not present in Stage/Ocean/Stage.arc, it must a be a leftover. I've re-arranged the logic for loading demos to match the game and support the fallback-to-Stage behavior in case I can find counter.stb somewhere later
Now we just call demo.remove() when a cutscene is triggered. The game has no mechanism for this, it just assumes no demo is playing when one is started (seems fair)
…ting for user input But for now, we just suspend for one frame and then continue. - Added the "Control" object to TControl - This can be controlled by the STB file and is used to set the suspend state when waiting for user input (e.g. when a message is being displayed) - Parser now handles -1 object type (control) - Added suspend support
Put `debugger` statements in place to catch first usages of None and Plateau interpolation so that they can be confirmed working
The "Stolen Sister" cutscene in Outset can now complete
This was used for debugging
The game attaches animation classes during `draw()` and then immediately removes them. Noclip uses a separate, nondestructive, style of animation logic.
Changed one use case to use the new name
…andling Thanks Jasper!
- Added "Cutscenes" category with the Wind Waker section - Currently all cutscenes are listed - Clicking one will load the correct Scene and begin playing the demo
When a demo is complete enough to be worth viewing, move it to the sceneDescs list
Added public/private to data members Remove some redundant type info when using =
Cutscene (demo) support for Wind Waker
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by pull[bot] (v2.0.0-alpha.1)
Can you help keep this open source service alive? 💖 Please sponsor : )