Age | Commit message (Collapse) | Author |
|
also s/frozen/captivated/ for consistency with sfx
|
|
Existing code wouldn't notice when a TV-attracted baby collided
with an existing inanimate infection (previously infected baby)
This commit adds a nested search in tv_search for the affected
baby case, to detect such collisions. Note this required bumping
the max nested search for the ix2 from 1 to 2, comment updated to
reflect that.
|
|
The existing code wouldn't handle when newly infected babies
overlapped with other uninfected babies, creating potential
outcomes where a stationary virus is left visibly touching an
uninfected baby.
This commit puts new infections on a list to be processed like
viruses after performing the per-virus search creating the new
infections. Now when a newly infected baby is touching other
babies, those other babies become immediately infected as well.
|
|
It's possible for babies to overlap and a virus to encounter them
simultaneously. The existing code halted the search on the first
hit. This commit changes things to continue the search and
infect all hits before resetting the infecting virus.
|
|
Now nearby babies migrate towards the TV
|
|
This name already doesn't quite reflect what's happening since
the addition of the TV.
There will be more non-viruses stuff added to this function only
making the existing name even more wrong. Renaming for better
accuracy along with the associated timer's symbolic constants.
No functional changes...
|
|
When a touch is active, the player progresses towards the touch
position.
The scaling of the touch coordinates is a bit oversized so you
can place the adult off-screen to rescue babies, without your
finger actually going off-screen.
|
|
The bulk of this is mechanical wiring up of a projection_x to all
the nodes.
But this also introduces maintenance of the projection_x, with
aspect-ratio preservation in two of the modes: WINDOWED and
FULLSCREEN, with the previously default stretched-to-fill
fullscreen mode now relegated to a third FILLSCREEN winmode.
The default at startup is now an aspect ratio-preserving windowed
mode.
Simply press the 'f' key at any time to cycle through them.
This was mostly done in sars to provide a source-available test
for reproducing a fullscreen SDL2 bug I filed @
https://github.com/libsdl-org/SDL/issues/5139
Otherwise it's pretty silly to bother with doing anything on
sars... but it is a handy little mule for such things.
|
|
Newer libstage cleans up the parent/adopt conf naming a bit, fixup
relevant call sites to reflect that.
|
|
Cosmetic change getting rid of a FIXME from the code
|
|
Some substitution errors, some stale stuff, some unnecessarily
conversational crap resulting from drunk overnighter coding.
|
|
just some missing whitespace
|
|
Missing comma silently resulted in aabb_any.min.x == -2
Excellent example of how using the same syntax for negative and
the subtraction operator creates opportunity for silent bugs.
This is the first time this particular thing has bitten me, doing
mostly systems programming throughout my life I haven't dealt much
with negative values and certainly not frequently initializing bags
of them as is common in game development.
This bug is why the collision hit boxes seemed so huge, it was only
on the horizontal axis, and actually just the minimum side but in-play
it appears to be both since there's always a minimum involved on a
horizontal collision.
Sigh.
|
|
Missed two first time around
|
|
|
|
The m4f_3dx.h helpers know to give an identity on NULL...
No functional difference, just removing some kruft.
|
|
Rather than a new-then-free dance this avoids creating a new
stage_t altogether by installing the new object into the existing
one via the stage_conf_t.parent pointer combined with adopt flag.
|
|
The theme of this Blender was:
Monkeys / Rescuing / Between Realities
With all the COVID-19 stuff going on, it seemed like a fun way
to lighten things up a bit to make something where a monkey runs
around trying to rescue child monkeys from coronaviruses moving
across the playfield. In keeping with the theme, to rescue the
helpless monkeys you take them to a different reality by carrying
them off the window/screen. As infections increase the field
becomes crowded with viruses until your player becomes infected
through contact, ending your game.
This was written quickly kamikaze style overnight. Some
scaffolding bits came from past projects of mine like the vector
headers, shader and texture node building blocks, and the plasma
effect has been used a few times now and originally was derived
from some gpu programming tutorial if memory serves. I just
wanted to put something in the background for this strange
reality.
This is the first time I've used libplay, in fact, it was
basically slapped together last night at the start of this to
avoid having to do all that SDL initialization all over again.
The unique meat of this work is in game.c, there isn't really all
that much to this game though. It's not pretty code, but it
works well enough and this task served as a useful exercise of
trying to get some quick game dev done using this collection of
facilities.
Most the heavy lifting comes from my reused libraries which are
slowly evolving into something somewhat effective for simple game
development.
Enjoy, and happy hacking!
|