Commit graph

44 commits

Author SHA1 Message Date
Andrei Alexeyev
8b37d1cbf2
src: the great #include massacre of 2024 2024-05-17 14:11:48 +02:00
Andrei Alexeyev
be7905d6a3
src: run upkeep 2024-05-17 04:58:47 +02:00
Andrei Alexeyev
7e1ea18969
item: cache sprite pointers 2023-09-28 17:43:14 +02:00
Andrei Alexeyev
9dade8ad33
resource: lifetime management redesign (WIP) 2023-04-29 20:01:50 +02:00
Andrei Alexeyev
bde303b71b
item: increase power item value to 0.05 2023-04-10 21:43:48 +02:00
Andrei Alexeyev
211c197f30
item,common_tasks: fix off-by-one error in ItemCounts
lives weren't accounted for in the array view
2023-01-31 04:15:51 +01:00
Andrei Alexeyev
55e103be1e
item: optimize collision 2022-01-12 14:58:39 +02:00
Andrei Alexeyev
8d2ee76710
replace include guards with #pragma once 2021-08-31 23:34:46 +03:00
Andrei Alexeyev
40425c346b
Enemy system extensions (#256)
* Add red fairies; tweaks to blue fairies and circles

* Add more fairies and a simple enemy archetype system

Note that existing stages not utilizing the new enemy spawning system
will have a visual regression - fairies will not have their magic
circles and particle effects visible. These are no longer implemented by
the enemy visual rules and require additional setup from the new spawner
wrappers. All stages should be converted to the new system.

Also improved old fairy sprites

* enemy_classes: rebalance HP

* enemy_classes: add EnemySpawner typedef

* items: add ITEMS() shortcut macro for use with enemy spawners
2020-10-08 05:00:52 +03:00
Andrei Alexeyev
e16e2184a3
Refactor entity system (#214)
* Smarter generic entity macros

The list of "core" entities is now defined in one macro, and hardcoded
_Generic dispatch tables are eliminated

* Get rid of "custom" entities

All entities are now "first-class". The list of known entity types has
been moved to known_entities.h. The system no longer needs to know the
definition of all entity structs.

* Refactor guts of ENT_BOX/ENT_UNBOX

Made the functions inline, Box::ent is now a proper pointer type (but
please don't use it directly), ENT_UNBOX returns NULL if the box is
"empty" (references NULL entity)

* Merge TASK_BIND_UNBOXED with TASK_BIND

* s/YoumuMyon/YoumuAMyon for consistency
2020-04-17 10:18:53 +03:00
Andrei Alexeyev
9fe54e0335
experimental event system for coroutine-based stages 2020-03-04 21:50:50 +02:00
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
f87ac189ef
replace item spawning functions with type-safe versions 2019-03-03 13:53:45 +02:00
Andrei Alexeyev
8fc5abb78a
The Powersurge game mechanic and scoring system (#159) 2019-02-22 01:56:03 +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
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
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
485c9a8ed6
Happy New Year! 2018-01-04 19:14:31 +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
00bd11ea89
item tweaks; improved after-death grace period
* items bounce off the viewport "walls"
    * autocollect is interrupted on death
    * all projectiles are continuously cleared during the death and
    respawn process
2017-10-31 15:47:20 +02:00
makise-homura
2b35177cb4 Removed excess and added missing newlines at end of files 2017-10-10 21:10:35 +03:00
laochailan
03a2426012
update to use #pragma once 2017-09-27 14:14:53 +02:00
Andrei "Akari" Alexeyev
7c9e54a71d
update copyright and credits 2017-09-12 04:28:15 +03:00
Andrei "Akari" Alexeyev
31bbef7aae made spawn_items more consistent and documented it 2017-03-25 08:46:20 +02:00
Andrei "Akari" Alexeyev
02afd3117c redesigned spawn_items for extensibility and clarity
so that we don't have to change it every time we add a new item or
remember the order of arguments.
2017-03-24 22:07:19 +02:00
Andrei "Akari" Alexeyev
748043c8ca Added the life/bomb fragment items 2017-03-24 21:42:56 +02:00
Andrei "Akari" Alexeyev
67128fad8f Consistent drawing order of items based on significance
So e.g. a Life will never be obscured behind a Point
2017-03-19 05:09:41 +02:00
Andrei "Akari" Alexeyev
c82928a8da WIP transition from resource scanning to manual preloading 2017-03-11 21:36:25 +02:00
Andrei "Akari" Alexeyev
dacbf96427 moved util functions from global to where they make a bit more sense 2017-03-06 03:24:47 +02:00
Andrew "Akari" Alexeyew
6adc079ecd Power penalty for dying: lose 1/2, drop 1/3 2017-02-12 00:23:01 +02:00
Andrei "Akari" Alexeyev
9a7a874783 Use the standard bool type instead of that stupid enum
Also removed all of the annoying trailing tabs/whitespaces
2017-02-11 05:56:47 +02:00
Andrei "Akari" Alexeyev
8566c65f4b Fixed clang warnings 2017-02-07 20:34:55 +02:00
Andrew "Akari" Alexeyew
779ff58684 Fixed all the () prototypes, changed to (void) 2012-08-10 23:08:51 +03:00
laochailan
bb7c527acb increased warning level; decreased warnings
proved necessary after the last session "taisei intelligence vs. stupid implicit declaration failure #9001"
2011-07-04 13:14:33 +02:00
laochailan
36e4dc331b compatibility for old hardware
added two config options:

disable_shader: will turn off the use of shaders and fbos in the game. there is no full replacement for them, however.
disable_audio: guess what.

both options *should* be activated automatically as soon as something goes wrong.
2011-06-27 13:36:35 +02:00
laochailan
bd44c8b570 Marisa and difficulty menu 2011-06-24 12:35:03 +02:00
laochailan
3861a69d62 menus - the beginning
implemented:
[x] ingame menu
[x] main menu
[x] menus
[x] fancy fades
[x] structural earthquake
[ ] the rest of the main menu (difficulty/char select)
2011-06-13 18:48:36 +02:00
laochailan
91b3b7d65e reference system
added some kind of reference system (see list.h) to ensure particles/projectiles/enemies storing pointers to each other that they will not access a borked address.
2011-05-13 19:03:02 +02:00
laochailan
d9fdc2aa0e Dialogs! conversational~
fun fact: taisei might build with -Wall -Werror now.
2011-05-08 13:48:25 +02:00
laochailan
c220f7b4ae uh cirno and poweritem -> item 2011-04-29 10:26:37 +02:00