File add_infinite_continue.patch of Package taisei

--- ./src/config.orig.h	2021-05-01 04:08:10.878148000 +0900
+++ ./src/config.h	2021-05-24 11:26:25.993936415 +0900
@@ -88,6 +88,7 @@
 	CONFIGDEF_INT       (VERSION,                   "@version",                             0) \
 	\
 	CONFIGDEF_STRING    (PLAYERNAME,                "playername",                           "Player") \
+	CONFIGDEF_INT       (INFINITE_CONTINUE,         "infinite_continue",                    0) \
 	CONFIGDEF_INT       (FULLSCREEN,                "fullscreen",                           0) \
 	CONFIGDEF_INT       (VID_WIDTH,                 "vid_width",                            RESX) \
 	CONFIGDEF_INT       (VID_HEIGHT,                "vid_height",                           RESY) \
--- ./src/ending.orig.c	2021-05-01 04:08:10.878148000 +0900
+++ ./src/ending.c	2021-05-24 11:29:56.856851368 +0900
@@ -150,7 +150,7 @@
 static void init_ending(Ending *e) {
 	dynarray_ensure_capacity(&e->entries, 32);
 
-	if(global.plr.continues_used) {
+	if(global.plr.continues_used || config_get_int(CONFIG_INFINITE_CONTINUE)) {
 		global.plr.mode->character->ending.bad(e);
 	} else {
 		global.plr.mode->character->ending.good(e);
--- ./src/player.orig.c	2021-05-01 04:08:10.882148000 +0900
+++ ./src/player.c	2021-05-24 11:34:49.104898399 +0900
@@ -549,6 +549,7 @@
 
 void player_logic(Player* plr) {
 	fapproach_p(&plr->bomb_cutin_alpha, 0, 1/200.0);
+	int continue_count = config_get_int(CONFIG_INFINITE_CONTINUE) ? 0 : 1;
 
 	if(plr->respawntime - PLR_RESPAWN_TIME/2 == global.frames && plr->lives < 0 && global.replaymode != REPLAY_PLAY) {
 		stage_gameover();
@@ -560,7 +561,7 @@
 		plr->point_item_value = PLR_START_PIV;
 		plr->life_fragments = 0;
 		plr->bomb_fragments = 0;
-		plr->continues_used += 1;
+		plr->continues_used += continue_count;
 		player_set_power(plr, 0);
 		stage_clear_hazards(CLEAR_HAZARDS_ALL);
 		spawn_items(plr->deathpos, ITEM_POWER, (int)ceil(PLR_MAX_POWER/(double)POWER_VALUE));
openSUSE Build Service is sponsored by