* Use "strings" instead of "subtitles" for translation-related files and types
* Remove CMAKE preprocessor define
* Remove makefile hack in generate_sound_ids
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
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
Fixes#382
- to alleviate the above issue I saved the current sound from each channel in the cutscene runner and serialize r/w appropriately.
- also made a new channel for Ambient Sounds called CH_AMBIENT. there are now 3 total channels CH_GLADOS, CH_MUSIC, and CH_AMBIENT
the only issue that is remaining is because we are relying on cutscene runner to que up the ambient sounds, the ambient sounds dont start until a cutscene starts on a level. this could be alleviated by making a trigger in the starting elevator of each level that simply triggers the ambient sound to play.
- simply added the ambient_base sound to the game. its actually a very small sound file, so we could layer on other ambient sounds on top that are queued by different parts of the level in the future if we wanted.
- because this is an activeSound it is also effected by the bug where if you save and reload it is no longer playing (just like the current glados voice line activeSound)
- tested in entire game seems to work well.
- added 3 new songs and triggered them at appropriate moments according to the wiki
- made a new CH_MUSIC channel for music
- adjusted music volume to be initialized at 50% which seems like the right volume to match the original game.
- tested the entire game to make sure its all working properly.
- python file added and invoked at make that produces a subtitles.c and subtitles.h synamically based on the closed captions files present inside of the resource/ folder
- added an in-game slider to choose from the languages which were dynamically loaded at time of building.
- if no closecaption files are present at the time of building, the script will still make the subtitles.c/.h but it just wont have any data. This will also result in the two menu items relating to closed captions being removed.
- the names of subtitles in the .yaml files are the upercase versions of the names of subtitles in each subtitle file, so that they are easy to find.
- fixed margins on sides of subtitles
- fixed color of subtitles to be more visible
- sped up the fade in and out animations.
- automated new-line breaks.
Issues I have seen:
- if you load more than like 6 closed caption languages into the resource/ folder the game doesnt seem to want to start up once built. I think this is due to the sheer size of the subtitles.c file that is generated. I would love some feedback on how to make this work a little better/be more memory efficient, as it would be nice to have every closed caption language available on every build.
- languages with very unique characters (chinese, japanese, korean, greek, etc.) do not work because the python codec that is used to decode/encode the files doesnt support them. for now that logic is in a try/except so it wont fail, it will simply skip a language that is not supported.
- added subtitles and all required functions to get them up and running. Subtitles accross all main game dialogue is running now.
- subtitleID's are included as metadata now when a q_sound line is put in a map's .yaml file
- Also added in a toggle button to turn them on or off.
there are only 3 downsides to my method here.
- subtitles must be manually added to their array when new dialogue is added. I included all the english subtitles in a .txt inside of assets folder.
- no punctuation/symbols. once the font is updated though this should be resolved.
- font size is a bit big, however if the font is ever updated to have a size modifier in the future this would be a snap to change.
attached video of it working.
Fixes#262