Commit graph

2203 commits

Author SHA1 Message Date
Andrei Alexeyev
1c588f1a41
fix post-battle dialogues to include the boss portrait 2018-05-31 22:56:40 +03:00
Andrei Alexeyev
aea1374d83
fix the induction lerp bug AGAIN 2018-05-31 22:49:16 +03:00
Andrei Alexeyev
f493759c79
fix use-after-free due to broken resource dependencies
this bug manifested on the reimu branch
2018-05-31 20:52:40 +03:00
Andrei Alexeyev
dbf73c9a67
tweak death effect 2018-05-31 20:34:51 +03:00
Andrei Alexeyev
ca162e156f
don't r_flush_sprites when syncing rendertarget; not necessary and may double free 2018-05-29 23:59:16 +03:00
Andrei Alexeyev
234a2b6fd3
gen-atlases: run targets in parallel 2018-05-28 21:30:13 +03:00
Andrei Alexeyev
60959ac4f3
make atlas build rules scale to multiple directories 2018-05-28 20:47:27 +03:00
Andrei Alexeyev
5a83aa177e
Improve filename timestamps (screenshots, replays)
* Get rid of timezone information.
    * If possible, add milliseconds precision. This is useful when
    taking several screenshots in quick succession.
2018-05-28 12:03:14 +03:00
Andrei Alexeyev
5329a1f6b1
display bgm title for a longer time 2018-05-28 09:58:11 +03:00
Andrei Alexeyev
30a8bc0c39
fix ricci to not rely on enemy spawn order 2018-05-28 09:58:11 +03:00
Andrei Alexeyev
09946ebff9
Threading improvements (#125)
* Add a general purpose multi-threaded task manager (worker pool) for background tasks

Reimplemented screenshots off-loading using the new task manager.

* Largerly rewrite resource loading internals

They use the new task manager API now and should be generally more
robust.

* Made the game playable without threads again

* wait for resource async load task instead of intermediate state change

* remove dead code

* taskmgr: if creating a worker thread fails, try to make sure the others terminate
2018-05-25 09:01:07 +03:00
Andrei Alexeyev
bb0f9ce0d4
Encode and write screenshots on a background thread
This reduces in-game stuttering when a screenshot is taken, especially
if multiple are taken during a short time frame. The pixel transfer from
the renderer to client memory is still synchronous, so some spikes are
to be expected; however, png encoding is usually much slower.

Also, TODO: convert this code into a generic multi-threaded task
manager/worker pool (similar to python's futures), and make the
asynchronous resource loading code suck less using it. Another useful
application is asynchronous logging, but that probably should be turned
off in debug builds by default.
2018-05-22 08:57:02 +03:00
Andrei Alexeyev
f3616f3496
enhanced DPS stats (backport from reimu branch) 2018-05-20 04:42:17 +03:00
Andrei Alexeyev
f44e267188
Long overdue removal of bgm.conf. Specify metadata in .bgm files instead. 2018-05-19 05:09:10 +03:00
Andrei Alexeyev
fdfc2de543
attempt to ensure clean exit by external request (window closed, process terminated, etc.) 2018-05-19 05:01:16 +03:00
Andrei Alexeyev
b11e45add6
fix various bugs in elly spells; draw baryons below other stuff 2018-05-19 03:46:32 +03:00
Andrei Alexeyev
01e3ebbc66
remove debug cruft 2018-05-19 02:33:36 +03:00
Andrei Alexeyev
2139875b1d
by popular request, bosses now kill you on collision. beware the wriggle kick. 2018-05-19 02:30:35 +03:00
Andrei Alexeyev
2457d76424
more player death stuff 2018-05-19 02:24:49 +03:00
Andrei Alexeyev
a063adca1a
make snow halation orbs noclear 2018-05-19 00:15:15 +03:00
laochailan
9e1bb311b4
Merge pull request #123 from taisei-project/post-battle-dialogue
Post-battle dialogue
2018-05-18 20:59:42 +02:00
laochailan
1f9afcd3df dialog format changes 2018-05-18 20:58:40 +02:00
Andrei Alexeyev
379f9ebfe3
player death overlay effect (wip) 2018-05-18 21:15:11 +03:00
Andrei Alexeyev
c967fafa96
give items slightly more upwards velocity on spawn 2018-05-16 21:08:21 +03:00
Andrei Alexeyev
ebd751b25f
fix power items dropped on death instantly disappearing under some conditions 2018-05-16 20:55:03 +03:00
Andrei Alexeyev
5af2ac5c7a
fix projectile collision 2018-05-16 04:39:33 +03:00
Andrei Alexeyev
eb43370c1d
Give projectiles EVENT_BIRTH and call them with t==0 more consistently
The only case of t==0 being skipped is if the projectile was somehow
created after the projectile processing loop for this frame has been
finished. Currently that is only possible if a particle spawns a
non-particle projectile, which, ideally, should never happen. The same
problem exists with other types of entities. For example, if you have a
funny projectile rule that spawns an Enemy, that Enemy will have the 0th
frame skipped. One way to fix this is to maintain a list of all entities
in the game and process them all in a single loop, where newly spawned
entities would be appended to the tail of the list. This is also
probably the only good way to fix this, too.

Handling of all projectile events has been made mandatory to facilitate
easier debugging of subtle and/or hard to track bugs. If t<0, then the
projectile rule MUST return ACTION_ACK, signifying that it acknowledged
the event and handled it appropriately. Otherwise, it SHOULD return
ACTION_NONE or ACTION_DESTROY. In a perfect world, those just wouldn't
be conflated in the same function with update logic.

I've also cleaned up the stage_logic routine a bit. Moved most of the
dialog handling into dialog.c and gave higher priority to boss
processing. The later is currently necessary to let boss-spawned
projectiles and particles to get called with t==0.
2018-05-16 02:38:47 +03:00
Andrei Alexeyev
db9c664a22
Post-battle revision for Youmu (#121) 2018-05-15 03:36:40 +03:00
Andrei Alexeyev
17e5d102b4
Post-battle revision for Reimu (#120)
* Post-battle revision for Reimu

I made some minor edits to both this one and Marisa besides the new changes.  I thought they would either be better or more grammatically correct.  Hope they're all good.

* Reimu change

Now she tells Iku to donate to the shrine, Akari. :^)

* Kurumi dialogue line change

I kind of agree with Akari's proposition (the first one), so it's changed for now.
2018-05-15 03:36:19 +03:00
Lyricana
def1f7ddc9 Post-battle revision for Marisa (#119)
* Post-battle revision for Marisa

Hopefully I'm doing this formatting correctly.

* Marisa post-battle revision for Wriggle's revision

I tried buffing it and making the silly line sound more serious.
2018-05-15 03:35:40 +03:00
Andrei Alexeyev
05a41c5047
require meson version in a non-stupid way 2018-05-15 03:33:38 +03:00
Andrei Alexeyev
2932247249
attempt to refactor the util disaster into several smaller disasters 2018-05-15 03:27:25 +03:00
Andrei Alexeyev
7b5872490c
add some stupid garbage to make it build for windows again 2018-05-13 16:44:06 +03:00
Andrei Alexeyev
8a5f932469
Vlad's Army: make drainer pseudo-projectiles unclearable (fixes crash) 2018-05-13 16:14:55 +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
laochailan
280b0739d8
fix memleak in aniplayer 2018-05-08 18:17:18 +02:00
Andrei Alexeyev
004ef04384
debug: add key to toggle display of real collision boundaries 2018-05-08 16:03:12 +03:00
Andrei Alexeyev
3ed15bcb46
fix invisible collision bug in ToE 2018-05-08 12:22:13 +03:00
Andrei Alexeyev
e4e4937cc9
refuse to replay stages with invalid ids or plrmodes, display an error message 2018-05-08 11:21:01 +03:00
Andrei Alexeyev
26d6ad086f
fix null pointer dereference in replay menu
Happens when the replay uses an unknown playermode
2018-05-08 10:06:47 +03:00
Andrei Alexeyev
ba1e54112a
GAS GAS GAS, I'M GONNA STEP ON THE GAS 2018-05-08 08:42:43 +03:00
laochailan
c1c7a083ba
player transition animations 2018-05-05 11:23:56 +02:00
laochailan
e1bbd78b01
bug in the animation spec parser 2018-05-05 11:03:58 +02:00
laochailan
341d210e26
fix compilation with gcc 2018-05-05 10:31:35 +02:00
Andrei Alexeyev
e0dd40dc0a
Add Scuttle's bonus BGM 2018-05-02 09:19:22 +03:00
Andrei Alexeyev
45da133768
player property system; adjust character speeds and PoC 2018-05-02 09:08:32 +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
laochailan
0761377f41
add reimu dialog files
I know this is not on the reimu branch but putting them here without
integrating them with the rest of the game allows Lalasa to start
editing already.
2018-04-29 20:49:43 +02:00
Andrei Alexeyev
9f74e05687
fix missing include; run update-copyright.py 2018-04-29 21:40:10 +03:00
laochailan
7a957846fa
move the dialog into centralized files 2018-04-29 10:28:21 +02:00