preload: update all preloads

endings and extra spells are not completely tested yet.
This commit is contained in:
laochailan 2023-06-16 22:19:11 -04:00
parent 57be4df75f
commit a6e29bdc56
13 changed files with 74 additions and 10 deletions

View file

@ -1600,6 +1600,7 @@ void boss_preload(ResourceGroup *rg) {
res_group_preload(rg, RES_SFX, RESF_OPTIONAL,
"charge_generic",
"charge_extra",
"discharge",
"spellend",
"spellclear",
"timeout1",
@ -1612,6 +1613,7 @@ void boss_preload(ResourceGroup *rg) {
"boss_indicator",
"boss_spellcircle0",
"part/arc",
"part/blast_huge_rays",
"part/boss_shadow",
"spell",
NULL);

View file

@ -414,6 +414,8 @@ static void cutscene_preload(const CutscenePhase phases[], ResourceGroup *rg) {
res_group_preload(rg, RES_TEXTURE, RESF_DEFAULT, p->background, NULL);
}
}
res_group_preload(rg, RES_BGM, RESF_DEFAULT, "ending", NULL);
}
static CutsceneState *cutscene_state_new(const CutscenePhase phases[]) {

View file

@ -6,6 +6,7 @@
* Copyright (c) 2012-2019, Andrei Alexeyev <akari@taisei-project.org>.
*/
#include "resource/resource.h"
#include "taisei.h"
#include "enemy.h"
@ -345,10 +346,15 @@ void enemies_preload(ResourceGroup *rg) {
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT,
"fairy_circle",
"fairy_circle_red",
"fairy_circle_big",
"fairy_circle_big_and_mean",
"enemy/swirl",
NULL);
res_group_preload(rg, RES_SHADER_PROGRAM, RESF_DEFAULT,
"sprite_fairy",
NULL);
res_group_preload(rg, RES_SFX, RESF_OPTIONAL,
"enemydeath",
NULL);

View file

@ -23,6 +23,7 @@
enum {
F_HAPPY,
F_NORMAL,
F_PUZZLED,
F_SMUG,
F_SURPRISED,
F_UNAMUSED,
@ -34,6 +35,7 @@ static const char facedefs[NUM_CHARACTERS][NUM_FACES][FACENAME_LEN] = {
[PLR_CHAR_REIMU] = {
[F_HAPPY] = PORTRAIT_STATIC_FACE_SPRITE_NAME(reimu, happy),
[F_NORMAL] = PORTRAIT_STATIC_FACE_SPRITE_NAME(reimu, normal),
[F_PUZZLED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(reimu, puzzled),
[F_SMUG] = PORTRAIT_STATIC_FACE_SPRITE_NAME(reimu, smug),
[F_SURPRISED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(reimu, surprised),
[F_UNAMUSED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(reimu, unamused),
@ -41,6 +43,7 @@ static const char facedefs[NUM_CHARACTERS][NUM_FACES][FACENAME_LEN] = {
[PLR_CHAR_MARISA] = {
[F_HAPPY] = PORTRAIT_STATIC_FACE_SPRITE_NAME(marisa, happy),
[F_NORMAL] = PORTRAIT_STATIC_FACE_SPRITE_NAME(marisa, normal),
[F_PUZZLED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(marisa, puzzled),
[F_SMUG] = PORTRAIT_STATIC_FACE_SPRITE_NAME(marisa, smug),
[F_SURPRISED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(marisa, surprised),
[F_UNAMUSED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(marisa, unamused),
@ -48,6 +51,7 @@ static const char facedefs[NUM_CHARACTERS][NUM_FACES][FACENAME_LEN] = {
[PLR_CHAR_YOUMU] = {
[F_HAPPY] = PORTRAIT_STATIC_FACE_SPRITE_NAME(youmu, happy),
[F_NORMAL] = PORTRAIT_STATIC_FACE_SPRITE_NAME(youmu, normal),
[F_PUZZLED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(youmu, puzzled),
[F_SMUG] = PORTRAIT_STATIC_FACE_SPRITE_NAME(youmu, smug),
[F_SURPRISED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(youmu, surprised),
[F_UNAMUSED] = PORTRAIT_STATIC_FACE_SPRITE_NAME(youmu, unamused),
@ -390,4 +394,17 @@ void preload_char_menu(ResourceGroup *rg) {
for(int i = 0; i < sizeof(facedefs) / FACENAME_LEN; ++i) {
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT, p + i * FACENAME_LEN, NULL);
}
portrait_preload_face_sprite(rg, "reimu", "annoyed", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "reimu", "assertive", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "reimu", "irritated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "reimu", "outraged", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "reimu", "sigh", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "reimu", "unsettled", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "marisa", "sweat_smile", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "marisa", "inquisitive", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "youmu", "eeeeh", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "youmu", "embarrassed", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "youmu", "eyes_closed", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "youmu", "relaxed", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "youmu", "sigh", RESF_DEFAULT);
}

View file

@ -273,6 +273,7 @@ void menu_preload(ResourceGroup *rg) {
"cell_noise",
"stage1/cirnobg",
"menu/mainmenubg",
"loading",
NULL);
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT,

View file

@ -1053,6 +1053,7 @@ void projectiles_preload(ResourceGroup *rg) {
"part/smoke",
"part/smoothdot",
"part/stain",
"part/stardust",
"part/stardust_green",
NULL);
@ -1067,6 +1068,7 @@ void projectiles_preload(ResourceGroup *rg) {
"shot1_loop",
"shot_special1",
"redirect",
"warp",
NULL);
#define PP(name) (_pp_##name).preload(&_pp_##name, rg);

View file

@ -91,7 +91,10 @@ static void stage1_spellpractice_start(void) {
static void stage1_preload(ResourceGroup *rg) {
// DIALOG_PRELOAD(&global.plr, Stage1PreBoss, RESF_DEFAULT);
portrait_preload_base_sprite(rg, "cirno", NULL, RESF_DEFAULT);
portrait_preload_base_sprite(rg, "cirno", "defeated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "cirno", "angry", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "cirno", "normal", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "cirno", "defeated", RESF_DEFAULT);
res_group_preload(rg, RES_BGM, RESF_OPTIONAL, "stage1", "stage1boss", NULL);
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT,
"stage1/cirnobg",

View file

@ -70,19 +70,23 @@ static void stage2_end(void) {
static void stage2_preload(ResourceGroup *rg) {
portrait_preload_base_sprite(rg, "hina", NULL, RESF_DEFAULT);
portrait_preload_base_sprite(rg, "hina", "defeated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "hina", "concerned", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "hina", "defeated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "hina", "normal", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "hina", "serious", RESF_DEFAULT);
res_group_preload(rg, RES_BGM, RESF_OPTIONAL, "stage2", "stage2boss", NULL);
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT,
"fairy_circle_big",
"part/blast_huge_rays",
"stage2/spellbg1",
"stage2/spellbg2",
NULL);
res_group_preload(rg, RES_TEXTURE, RESF_DEFAULT,
"fractal_noise",
"ibl_brdf_lut",
"stage2/envmap",
"stage2/spellbg1",
"stage2/spellbg2",
NULL);
res_group_preload(rg, RES_MATERIAL, RESF_DEFAULT,
"stage2/branch",

View file

@ -153,7 +153,7 @@ TASK(rocket, { BoxedBoss boss; cmplx pos; cmplx dir; Color color; real phase; re
// FIXME: better sound
play_sfx("enemydeath");
play_sfx("shot1");
play_sfx("shot1_special");
play_sfx("shot_special1");
kill_projectile(p);
}

View file

@ -86,19 +86,28 @@ static void stage3_spellpractice_start(void) {
static void stage3_preload(ResourceGroup *rg) {
portrait_preload_base_sprite(rg, "wriggle", NULL, RESF_DEFAULT);
portrait_preload_base_sprite(rg, "wriggle", "defeated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "wriggle", "calm", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "wriggle", "normal", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "wriggle", "outraged", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "wriggle", "outraged_unlit", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "wriggle", "proud", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "wriggle", "defeated", RESF_DEFAULT);
portrait_preload_base_sprite(rg, "scuttle", NULL, RESF_DEFAULT);
portrait_preload_face_sprite(rg, "scuttle", "normal", RESF_DEFAULT);
res_group_preload(rg, RES_BGM, RESF_OPTIONAL, "stage3", "stage3boss", NULL);
res_group_preload(rg, RES_TEXTURE, RESF_DEFAULT,
"fractal_noise",
"ibl_brdf_lut",
"stage3/envmap",
"stage3/spellbg1",
"stage3/spellbg2",
"stage3/wspellbg",
"stage3/wspellclouds",
"stage3/wspellswarm",
NULL);
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT,
"stage3/spellbg2",
NULL);
res_group_preload(rg, RES_MATERIAL, RESF_DEFAULT,
"stage3/ground",
"stage3/leaves",
@ -117,7 +126,7 @@ static void stage3_preload(ResourceGroup *rg) {
"pbr",
"pbr_roughness_alpha_discard",
"stage3_wriggle_bg",
"zbuf_fog",
"zbuf_fog_tonemap",
NULL);
res_group_preload(rg, RES_ANIM, RESF_DEFAULT,
"boss/scuttle",

View file

@ -94,22 +94,29 @@ static void stage4_spellpractice_start(void) {
static void stage4_preload(ResourceGroup *rg) {
portrait_preload_base_sprite(rg, "kurumi", NULL, RESF_DEFAULT);
portrait_preload_base_sprite(rg, "kurumi", "defeated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "kurumi", "defeated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "kurumi", "dissatisfied", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "kurumi", "normal", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "kurumi", "puzzled", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "kurumi", "tsun", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "kurumi", "tsun_blush", RESF_DEFAULT);
res_group_preload(rg, RES_BGM, RESF_OPTIONAL, "stage4", "stage4boss", NULL);
res_group_preload(rg, RES_TEXTURE, RESF_DEFAULT,
"fractal_noise",
"stage4/kurumibg1",
"stage4/kurumibg2",
NULL);
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT,
"stage4/kurumibg1",
"stage6/scythe", // Stage 6 is intentional
NULL);
res_group_preload(rg, RES_SHADER_PROGRAM, RESF_DEFAULT,
"alpha_discard",
"fireparticles",
"pbr",
"sprite_negative",
"ssr_water",
"zbuf_fog",
"zbuf_fog_tonemap",
NULL);
res_group_preload(rg, RES_ANIM, RESF_DEFAULT,
"boss/kurumi",
@ -130,7 +137,6 @@ static void stage4_preload(ResourceGroup *rg) {
res_group_preload(rg, RES_SFX, RESF_OPTIONAL,
"laser1",
"boom",
"warp",
NULL);
// XXX: Special case for spell practice of the god damn extra spell, because it always needs a special case.

View file

@ -73,7 +73,12 @@ static void stage5_start(void) {
static void stage5_preload(ResourceGroup *rg) {
portrait_preload_base_sprite(rg, "iku", NULL, RESF_DEFAULT);
portrait_preload_base_sprite(rg, "iku", "defeated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "iku", "defeated", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "iku", "eyes_closed", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "iku", "normal", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "iku", "serious", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "iku", "smile", RESF_DEFAULT);
res_group_preload(rg, RES_BGM, RESF_OPTIONAL, "stage5", "stage5boss", NULL);
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT,
"part/blast_huge_halo",
@ -84,6 +89,8 @@ static void stage5_preload(ResourceGroup *rg) {
"stage5/spell_lightning",
NULL);
res_group_preload(rg, RES_TEXTURE, RESF_DEFAULT,
"ibl_brdf_lut",
"fractal_noise",
"stage5/envmap",
NULL);
res_group_preload(rg, RES_MATERIAL, RESF_DEFAULT,

View file

@ -85,9 +85,13 @@ struct stage6_spells_s stage6_spells = {
static void stage6_preload(ResourceGroup *rg) {
portrait_preload_base_sprite(rg, "elly", NULL, RESF_DEFAULT);
portrait_preload_face_sprite(rg, "elly", "normal", RESF_DEFAULT);
portrait_preload_base_sprite(rg, "elly", "beaten", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "elly", "angry", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "elly", "blush", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "elly", "eyes_closed", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "elly", "normal", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "elly", "shouting", RESF_DEFAULT);
portrait_preload_face_sprite(rg, "elly", "smug", RESF_DEFAULT);
res_group_preload(rg, RES_BGM, RESF_OPTIONAL,
"stage6",
"stage6boss_phase1",
@ -95,6 +99,8 @@ static void stage6_preload(ResourceGroup *rg) {
"stage6boss_phase3",
NULL);
res_group_preload(rg, RES_TEXTURE, RESF_DEFAULT,
"ibl_brdf_lut",
"fractal_noise",
"stage6/sky",
NULL);
res_group_preload(rg, RES_SPRITE, RESF_DEFAULT,
@ -147,7 +153,6 @@ static void stage6_preload(ResourceGroup *rg) {
"stage6/tower_bottom",
NULL);
res_group_preload(rg, RES_SFX, RESF_DEFAULT | RESF_OPTIONAL,
"warp",
"noise1",
"boom",
"laser1",