hqtrilogy log nr. 22


I finally fixed the syncing issue of the music in hq2_7. I couldn't really figure out why the bass gets out of sync over time, but it can get out of sync if you save and reload, there's no getting around that.

I basically fixed it by duplicating the base note. When pressing exit, I play the bass copy for 4 seconds (along with the "transitional" strings sample), then turn off the copy, and turn on the original bass sound again along with the other sounds (strings, piano, drums). Now the final music samples are always aligned, no matter what you do.

Next, I looked at the camera issue in hq2_8, and this is another weird one.

There are two cameras, the first is supposed to move around a TV that shows "HALF QUAKE". It zooms in and then triggers the next camera.

Only the second camera worked, the first just caused the player to be stuck and result in some on-screen effects as if they were stuck inside a wall.

After some debugging and remaking the camera and triggering it separately, I noticed that if something else has the same target name as the camera, it gets stuck. Once I changed the target name of the sound file and the game text that are supposed to start at the same time, it worked.

Again, the camera in SoHL1.8a really has some weird issues going on. The game text is still not visible (that's some fun debugging for another time), but at least the camera sequence works now.

Next, I decided to try and fix the drawing distance of the ambience maps again. I remember Unq talking about it on his halfquake amen live stream, so I just decided to talk to him on twitter. I've only ever tried 4000 or 9000 as drawing distance, and Unq suggested that I use 15000. Weirdly enough, that seemed to work. I'm so sure that I used higher values, even extreme ones like 30k or 99999 or something xD Maybe I never tried anything between 10k and 20k :D

Anyway, it works now, and that's what's important!

Before:

After:

I think I want to debug the camera next, maybe pulling in the code from an older SoHL codebase and looking at the diff - but that's for another entry.

To be continued... (<