Commit graph

92 commits

Author SHA1 Message Date
Andrei Alexeyev
80b1026d08
Don't redefine standard complex macro; use a new cmplx typedef
This also introduces `float32`, `float64`, and `real` typedefs to be
used in place of `float` and `double` later. `real` is for game code and
other places where we don't particularly care about the precision and
format of the underlying type, and is currently defined to `double`.
`float32` and `float64` should replace `float` and `double` respectively
2019-11-22 05:38:48 +02:00
Andrei Alexeyev
5a23fb95fc
make upkeep script preserve existing copyrights 2019-08-03 20:44:22 +03:00
Andrei Alexeyev
3055901998
update my email 2019-07-03 21:00:56 +03:00
Andrei Alexeyev
fd09bf02c8
Enforce explicit form and .proto usage for PROJECTILE/PARTICLE calls
Remove kludge code converting sprite names to prototypes
2019-04-11 07:12:17 +03:00
Andrei Alexeyev
6b3b1fd3e0
document ProjFlags 2019-03-28 19:05:35 +02:00
Andrei Alexeyev
990f7cfda2
remove legacy PFLAG_GRAZESPAM flag 2019-03-28 18:48:48 +02:00
Andrei Alexeyev
3f70efb8b5
use more convenional naming for ProjType enum 2019-03-28 18:42:07 +02:00
Andrei Alexeyev
080b8f12fd
retire FakeProj 2019-03-28 18:40:04 +02:00
Andrei Alexeyev
4e7c37976f
Fantasy Seal dmg buff and minor adjustments 2019-03-26 13:57:01 +02:00
Andrei Alexeyev
8fc5abb78a
The Powersurge game mechanic and scoring system (#159) 2019-02-22 01:56:03 +02:00
Andrei Alexeyev
34d7cb7ae3
fix CLEAR_HAZARDS_NOW and refs to items corrupting memory
also a few other entity-related fuck-ups
2019-01-26 03:54:57 +02:00
Andrei Alexeyev
4159ea1249
'upkeep' target for maintenance tasks; back to include guards; happy new year! 2019-01-23 22:10:43 +02:00
Andrei Alexeyev
49d0d54a2e
Lots of disorganized (mostly) visual overhaul (#156)
* WIP some projectile effects

* fix segfault

* Laser smoothing and glow via post-processing blur magic

TODO: make it optional

* fix memory corruption

* fix memory corruption for realsies now

* fix color_get_hsl for out-of-range colors

* some more bullet flare tweaks

* some lame clear effect workarounds

* spawn bullet flares after frame 0; looks better and fixes some problems

* New baryon explosion; fix petal_explosion; leanify everything

* Add missing bullet flare sprite, rebuild main atlas

* improve batching efficiency with bullet spawn flares

* forgot git add

* Group projectiles/particles by shader where possible

* Another take on baryon explosion; make fg framebuffers 16bit

* WIP some settings for toasters

* remove stupid debug log

* microoptimization that probably does nothing anyway

* somewhat more intuitive quality settings

* Whitelist more particles (MarisaB is on hold)

* Whitelist (and fix) some more stage6 particles (mostly ToE)

* Add a spell name background

* Experimental radial healthbar for bosses

* healthbar tweaks

* thiccer healthbars in response to feedback

* remove healthbar survival timer; just fade out on survivals

* Add linear healthbars option; WIP other boss HUD tweaks

* Use the proper spell card name format

* New font and some random garbage to go along with it

* Generate static font outlines for use in text shaders

* Use outlines in overlay text shader

* Complete boss HUD/healthbar fading logic

* fix boss timer limit

* stage5 bombs explosion effect

* split PFLAG_NOSPAWNZOOM into PFLAG_NOSPAWNFLARE and PFLAG_NOSPAWNFADE;

introduce PFLAG_NOSPAWNEFFECTS which disables both (it's just the two
values OR'd together)

simplify vampiric vapor bullet spawning effect

* Remove spawn fade-in from super-fast stage5 fairy projectiles (limiters)

* lower particle density in v.vapor in minimal mode

* graze effect tweaks

* fix text shortening, tweak replay menu layout

* stupid debug spam

* revisit grazing effects again

* dumb debug spam again

* improve boss attack timer

* overlay effect for boss deaths (similar to the player one)

* spice up spellcard declaration (HUD)

* don't spawn boss death overlay if fleed

* modify Exo2 font to use tabular figures

* adjust replay menu for the font change

* draw timer & power with standard font (phasing out the numbers font)

* WIP new HUD; random fixes/tweaks

* hud: move difficulty indicator

* hud: move debug stuff around

* preloads, mostly

* fix youmuA batching conflict

* shitty workaround for the shitty screenshake shit

* remove extraspell lag by stopping to draw stagebg sooner

which is possible because extra spells have a different spellcard_intro timing. Fun fact of the day: the duration of spellcard_intro is always ATTACK_START_DELAY_EXTRA even for normal spells!

* new stain particle

*  i disabled background rendering…

* "batch" marisa_b masterspark draws

* remove these once a new atlas is generated

* make toe quick again

* hopefully fix all occurences of changed stain and ScaleFade behavior

* tweaking reimu_a and toe boson launch effects

* make lhc fast again

* softer involnerability effect

* fix stage 1 snow on the water bug (and improve performance)

translated the time to the future a bit because it only seemed to be an issue for small time values

* remove unnecessary spawnflare from toe

* tone down extra spell start effect

* experimental ReimuB gap shader optimization

* fix python3 shebangs

* generate simple blur shaders w/ hardcoded kernels

* New loading screen

* lasers: fix incorrect draw hook registration

* add webp support for atlas generator

* Use ImageMagick for atlas composition (adds 16-bit support)

* Atlas maintenance

* make the vampiric vapor bullets less prone to invisibility

* Revert a few particles to the quadratic fade curve

* experimental baryon effect

* improve baryon sprites

* disable the baryon effect on minimal postprocessing setting
2019-01-05 00:59:39 +02:00
Andrei Alexeyev
d4650d4b92
Allow projectile rules to delete other projectiles; add stage_clear_hazards enhancements 2018-08-05 20:58:50 +03:00
Andrei Alexeyev
e9ef77abee
basic entity damage generalization 2018-07-30 10:04:39 +03:00
Andrei Alexeyev
8490576810
Premultiplied alpha (#133)
* WIP premultiplied alpha

* WIP color API rework (doesn't build yet; lots of things left to convert)

* convert everything remaining to new Color api except stage*_event.c files

* convert the stages to new Color api. builds & runs now; still many rendering errors

* fix the bullet shader for premultiplied alpha

* fix masterspark, graphs and stage 1 fog clouds

* fix marisa_b and most of spellcards

* Add deprecation warnings for BLEND_ADD and PFLAG_DRAWADD

* fix a segfault in stage 6

undo accidental earlier change

* fix text_hud.frag.glsl

* fix scuttle bg and remaining stage3 BLEND_ADDs

* fix marisa laser opacity

* hacky fix for myon

The old implementation relied on alpha being stored inside p->color. In
premul alpha this doesn’t work and functions like color_set_opacity
can’t solve this i think.

So I tried messing around with it until it looked somewhat similar.

* fix marisa_b stars

* remove color_set_opacity i overlooked

* more plrmode blending changes

* fixup additive blending in stage 1

* various premultiplied alpha fixups for bosses and enemies

* stage 2 premul alpha fixups

* stage 4 premul alpha fixups

* stage 5 premul alpha fixups

* stage 6 premul alpha fixups

* make lasers also use the PMA blend mode

* remove PFLAG_DRAWADD and PFLAG_DRAWSUB

* fix remaining PMA issues in menus

* lame extraspell bg workaround

* fix item alpha

* make marisaA lasers look somewhat like in master

* fix marisaA bomb background fadeout

* fixup various r_color4 calls

* fix myon

* remove dead code

* fix use of BLEND_ADD in player death effect

* fix myon shot trails (broken on master as well)

* fix myon shot fade-in

* extend the sprite shaders custom parameter to a vec4

* fix youmuB stuff and make it look somewhat better.

the code looks even worse though.
2018-07-23 20:07:59 +03:00
Andrei Alexeyev
83a8961df6
use "anchored" lists for most game objects
these have a pointer to the last element, thus appending is fast
2018-06-01 21:40:18 +03:00
Andrei Alexeyev
ef37b22d6d
Improve (totally rewrite) projectile collision detection and graze mechanics (#122)
* improve (totally rewrite) projectile collision detection and graze mechanics

* fix lineseg_circle_intersect as per lao's suggestion

* adjust hit"boxes"

* fix false hits on inductive resonanse (bad lerp)

* initialize projectile prevpos on spawn

* pp_basic_init_projectile: always override the projectile's sprite when setting the prototype
2018-05-13 16:08:58 +03:00
Andrei Alexeyev
f67396423e
Projectile prototypes system (#118)
* wip projectile prototypes

* Partial fix for replay desyncs

* some YoumuA fixes

* fix various ToE problems

* fix MarisaB

* fix master spark

* fix iku slave particle position

* this timeout was somehow halved during the changes

* remove some v1.2 compat hacks
2018-05-02 07:46:48 +03:00
Andrei Alexeyev
8ef5ffd32c
Flexible draw order; entity "base class" for all game objects 2018-04-15 09:43:11 +03:00
Andrei Alexeyev
59cf8f6300
Rendering system rewrite, tons of refactoring, optimizations, and other cool stuff (#116) 2018-04-12 17:08:48 +03:00
Andrei Alexeyev
a9561d7baf
Sprites and texture atlases; upgrade most graphics to a higher resolution (optimized for 1600x1200) (#113) 2018-02-06 08:19:25 +02:00
Andrei Alexeyev
f4cd177b1a
add option to disable most particle effects. use PFLAG_REQUIREDPARTICLE to ignore it 2018-01-11 22:40:46 +02:00
Andrei Alexeyev
0e907c9c58
make the stage1 noreflect hack less bad 2018-01-11 22:16:18 +02:00
Andrei Alexeyev
f369329874
Theory of Everything redesign (#103)
* WIP version of toe

* some toe adjustments

* toe first phase tweaks

* make the last phase less dense

* tweak the shifts in toe phase 1

* added some comments and adjusted the first phase, transition after higgs

* ToE bells and whistles

* fix invisible scythe

* fixed the single particle

* audio_mixer: revert audio_backend_sound_stop_loop to use Mix_HaltChannel

* ToE: some difficulty scaling and other tweaks

* made the boson colors use hsl

* Elly: ToE transition, some fixes

* Add ToE bgm (elly phase 3)
2018-01-08 18:56:46 +02:00
Andrei Alexeyev
032a3852d7
fix my clearhazards fuckups 2018-01-06 20:23:38 +02:00
Andrei Alexeyev
728709befa
make Ricci field grazeable again, but with a milder effect and reduced score (PFLAG_GRAZESPAM) 2018-01-06 11:44:27 +02:00
Andrei Alexeyev
4116112869
no clear effect/bonus for dormant broglie bullets 2018-01-06 11:29:14 +02:00
Andrei Alexeyev
fc8cda89d7
improve stage_clear_hazards api, add particle effect for cleared bullets 2018-01-06 11:24:46 +02:00
Andrei Alexeyev
bb33afbe64
make a few vital hazards unclearable
LHC lasers, Broglie charges, Ricci danmaku field
2018-01-06 10:54:13 +02:00
Andrei Alexeyev
9625602bf2
add some fruits 2018-01-06 08:06:48 +02:00
Andrei Alexeyev
485c9a8ed6
Happy New Year! 2018-01-04 19:14:31 +02:00
Andrei Alexeyev
141c9da071
MarisaA: piercing lasers, reduced main shot dmg on higher pwr, lasers sway a bit when moving 2017-12-28 12:40:40 +02:00
Andrei Alexeyev
d55695739e
revamp projectile collision system; make trace_projectile more flexible 2017-12-28 11:05:54 +02:00
Andrei Alexeyev
de31a20497
objectpool: dynamic extents and other improvements 2017-12-24 05:00:19 +02:00
Andrei Alexeyev
29acd5f58a meson: intel intrinsics, various improvements 2017-12-21 03:58:54 +01:00
Andrei Alexeyev
abbc62b49c
object pools 2017-12-13 21:08:23 +02:00
Andrei Alexeyev
db8dd8ad7c
desperate optimizations
i even used a profiler
2017-11-23 18:23:30 +02:00
Andrei Alexeyev
76ee80b6da
(attempt to) prevent draw code from altering state 2017-11-16 22:25:03 +02:00
Andrei Alexeyev
586af9a6b0
huge projectile API changes and optimizations (#93) 2017-11-10 22:49:16 +02:00
laochailan
ff4e096cf5
s/FairyProj/EnemyProj 2017-11-05 15:02:49 +01:00
Andrei Alexeyev
48ae69bd24
generalize trace_laser into reusable trace_projectile 2017-11-01 06:47:36 +02:00
Andrei Alexeyev
62c34e3b5a
WIP fucking badass Marisa lasers 2017-10-31 08:57:32 +02:00
Andrei Alexeyev
4b690910bf
another stupid Elly spelly (unfinished) 2017-10-20 18:01:19 +03:00
Andrei Alexeyev
7627a1e531
New cirno hard+ spell: Winter Sign ~ Snow Halation 2017-10-03 08:46:15 +03:00
Andrei "Akari" Alexeyev
7c9e54a71d
update copyright and credits 2017-09-12 04:28:15 +03:00
Andrei "Akari" Alexeyev
9b6f51ca67
WIP ricci sign overhaul 2017-09-11 04:46:39 +03:00
laochailan
5cfe7d76d5 WIP ricci sign 2017-04-20 18:37:46 +02:00
laochailan
8a1dc362ed Acid Rain Lunatic 2017-03-31 14:09:57 +02:00
Andrei "Akari" Alexeyev
c82928a8da WIP transition from resource scanning to manual preloading 2017-03-11 21:36:25 +02:00