diff --git a/src/audio/audio.c b/src/audio/audio.c index 763f8a9a..9097df0d 100644 --- a/src/audio/audio.c +++ b/src/audio/audio.c @@ -11,6 +11,8 @@ #include "audio.h" #include "backend.h" #include "resource/resource.h" +#include "resource/bgm.h" +#include "resource/sfx.h" #include "global.h" #define B (_a_backend.funcs) @@ -47,7 +49,7 @@ static SoundID play_sound_internal(const char *name, bool is_ui, int cooldown, b return 0; } - Sound *snd = get_sound(name); + Sound *snd = res_sfx(name); if(!snd || (!is_ui && snd->lastplayframe + 3 + cooldown >= global.frames)) { return 0; @@ -116,7 +118,7 @@ void play_loop(const char *name) { return; } - Sound *snd = get_sound(name); + Sound *snd = res_sfx(name); if(!snd) { return; @@ -183,14 +185,6 @@ void stop_sounds(void) { B.sound_stop_all(SNDGROUP_MAIN); } -Sound* get_sound(const char *name) { - return get_resource_data(RES_SFX, name, RESF_OPTIONAL); -} - -Music* get_music(const char *name) { - return get_resource_data(RES_BGM, name, RESF_OPTIONAL); -} - static bool store_sfx_volume(const char *key, const char *val, void *data) { int vol = atoi(val); @@ -285,7 +279,7 @@ void start_bgm(const char *name) { stralloc(¤t_bgm.name, name); - if((current_bgm.music = get_music(name)) == NULL) { + if((current_bgm.music = res_bgm(name)) == NULL) { log_warn("BGM '%s' does not exist", current_bgm.name); stop_bgm(true); free(current_bgm.name); diff --git a/src/audio/audio.h b/src/audio/audio.h index ee8cf423..40412807 100644 --- a/src/audio/audio.h +++ b/src/audio/audio.h @@ -72,8 +72,8 @@ void update_sounds(void); // checks if loops need to be stopped int get_default_sfx_volume(const char *sfx); -Sound* get_sound(const char *name) attr_nonnull(1); -Music* get_music(const char *music) attr_nonnull(1); +DEFINE_DEPRECATED_RESOURCE_GETTER(Sound, get_sound, res_sfx) +DEFINE_DEPRECATED_RESOURCE_GETTER(Music, get_music, res_bgm) void start_bgm(const char *name); void stop_bgm(bool force); diff --git a/src/boss.c b/src/boss.c index c4f76c84..da595efc 100644 --- a/src/boss.c +++ b/src/boss.c @@ -41,7 +41,7 @@ Boss* create_boss(char *name, char *ani, cmplx pos) { char strbuf[strlen(ani) + sizeof("boss/")]; snprintf(strbuf, sizeof(strbuf), "boss/%s", ani); - aniplayer_create(&boss->ani, get_ani(strbuf), "main"); + aniplayer_create(&boss->ani, res_anim(strbuf), "main"); boss->birthtime = global.frames; boss->zoomcolor = *RGBA(0.1, 0.2, 0.3, 1.0); @@ -412,7 +412,7 @@ static void draw_spell_warning(Font *font, float y_pos, float f, float opacity) } static void draw_spell_name(Boss *b, int time, bool healthbar_radial) { - Font *font = get_font("standard"); + Font *font = res_font("standard"); cmplx x0 = VIEWPORT_W/2+I*VIEWPORT_H/3.5; float f = clamp((time - 40.0) / 60.0, 0, 1); @@ -469,7 +469,7 @@ static void draw_spell_name(Boss *b, int time, bool healthbar_radial) { if(p) { char buf[32]; float a = clamp((global.frames - b->current->starttime - 60) / 60.0, 0, 1); - font = get_font("small"); + font = res_font("small"); float bonus_ofs = 220; @@ -707,7 +707,7 @@ void draw_boss_overlay(Boss *boss) { float o = boss->hud.global_opacity * boss->hud.plrproximity_opacity; if(o > 0) { - draw_boss_text(ALIGN_LEFT, 10, 20 + 8 * !radial_style, boss->name, get_font("standard"), RGBA(o, o, o, o)); + draw_boss_text(ALIGN_LEFT, 10, 20 + 8 * !radial_style, boss->name, res_font("standard"), RGBA(o, o, o, o)); if(ATTACK_IS_SPELL(boss->current->type)) { int t_portrait, t_spell; @@ -737,8 +737,8 @@ void draw_boss_overlay(Boss *boss) { color_mul_scalar(&clr_int, o); clr_fract = *RGBA(clr_int.r * 0.5, clr_int.g * 0.5, clr_int.b * 0.5, clr_int.a); - Font *f_int = get_font("standard"); - Font *f_fract = get_font("small"); + Font *f_int = res_font("standard"); + Font *f_fract = res_font("small"); double pos_x, pos_y; Alignment align; @@ -761,7 +761,7 @@ void draw_boss_overlay(Boss *boss) { // remaining spells Color *clr = RGBA(0.7 * o, 0.7 * o, 0.7 * o, 0.7 * o); - Sprite *star = get_sprite("star"); + Sprite *star = res_sprite("star"); float x = 10 + star->w * 0.5; bool spell_found = false; diff --git a/src/coroutine.c b/src/coroutine.c index 7acc9dc4..379ab21b 100644 --- a/src/coroutine.c +++ b/src/coroutine.c @@ -1015,8 +1015,8 @@ void coroutines_draw_stats(void) { TextParams tp = { .pos = { SCREEN_W }, .color = RGB(1, 1, 1), - .shader_ptr = r_shader_get("text_default"), - .font_ptr = get_font("monotiny"), + .shader_ptr = res_shader("text_default"), + .font_ptr = res_font("monotiny"), .align = ALIGN_RIGHT, }; diff --git a/src/credits.c b/src/credits.c index d43aa2bd..f971a852 100644 --- a/src/credits.c +++ b/src/credits.c @@ -256,13 +256,13 @@ static double entry_height(CreditsEntry *e, double *head, double *body) { if(e->lines > 0) { if(*(e->data[0]) == '*') { - total += *head = sprite_padded_height(get_sprite("kyoukkuri")); + total += *head = sprite_padded_height(res_sprite("kyoukkuri")); } else { - total += *head = font_get_lineskip(get_font("big")); + total += *head = font_get_lineskip(res_font("big")); } if(e->lines > 1) { - total += *body += (e->lines - 0.5) * font_get_lineskip(get_font("standard")); + total += *body += (e->lines - 0.5) * font_get_lineskip(res_font("standard")); } } @@ -323,7 +323,7 @@ static void credits_draw_entry(CreditsEntry *e) { Sprite *yukkuri_spr = NULL; if(*e->data[0] == '*') { - yukkuri_spr = get_sprite("kyoukkuri"); + yukkuri_spr = res_sprite("kyoukkuri"); } r_state_push(); @@ -355,7 +355,7 @@ static void credits_draw_entry(CreditsEntry *e) { r_mat_mv_translate(0, halfheight, 0); } else { - Font *font = get_font(i ? "standard" : "big"); + Font *font = res_font(i ? "standard" : "big"); r_shader("text_default"); text_draw(e->data[i], &(TextParams) { .align = ALIGN_CENTER, diff --git a/src/dialog.c b/src/dialog.c index 865994f7..cf54a429 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -330,7 +330,7 @@ void dialog_draw(Dialog *dialog) { r_draw_quad(); r_mat_mv_pop(); - Font *font = get_font("standard"); + Font *font = res_font("standard"); r_mat_tex_push(); @@ -344,7 +344,7 @@ void dialog_draw(Dialog *dialog) { text_draw_wrapped(dialog->text.fading_out->text, dialog_bg_rect.w, &(TextParams) { .shader = "text_dialog", - .aux_textures = { r_texture_get("cell_noise") }, + .aux_textures = { res_texture("cell_noise") }, .shader_params = &(ShaderCustomParams) {{ o * (1.0 - (0.2 + 0.8 * (1 - dialog->text.fading_out->opacity))), 1 }}, .color = &clr, .pos = { VIEWPORT_W/2, VIEWPORT_H-110 + font_get_lineskip(font) }, @@ -360,7 +360,7 @@ void dialog_draw(Dialog *dialog) { text_draw_wrapped(dialog->text.current->text, dialog_bg_rect.w, &(TextParams) { .shader = "text_dialog", - .aux_textures = { r_texture_get("cell_noise") }, + .aux_textures = { res_texture("cell_noise") }, .shader_params = &(ShaderCustomParams) {{ o * dialog->text.current->opacity, 0 }}, .color = &clr, .pos = { VIEWPORT_W/2, VIEWPORT_H-110 + font_get_lineskip(font) }, diff --git a/src/ending.c b/src/ending.c index a2186850..a6ad4615 100644 --- a/src/ending.c +++ b/src/ending.c @@ -43,7 +43,7 @@ static void add_ending_entry(Ending *e, int dur, const char *msg, const char *sp entry->msg = msg; if(sprite) { - entry->sprite = get_sprite(sprite); + entry->sprite = res_sprite(sprite); } else { entry->sprite = NULL; } diff --git a/src/enemy.c b/src/enemy.c index cccb32ad..2cb42540 100644 --- a/src/enemy.c +++ b/src/enemy.c @@ -287,7 +287,7 @@ void BigFairy(Enemy *e, int t, bool render) { }); const char *seqname = !e->moving ? "main" : (e->dir ? "left" : "right"); - Animation *ani = get_ani("enemy/bigfairy"); + Animation *ani = res_anim("enemy/bigfairy"); Sprite *spr = animation_get_frame(ani,get_ani_sequence(ani, seqname),global.frames); r_draw_sprite(&(SpriteParams) { @@ -314,7 +314,7 @@ void Fairy(Enemy *e, int t, bool render) { }); const char *seqname = !e->moving ? "main" : (e->dir ? "left" : "right"); - Animation *ani = get_ani("enemy/fairy"); + Animation *ani = res_anim("enemy/fairy"); Sprite *spr = animation_get_frame(ani,get_ani_sequence(ani, seqname),global.frames); r_draw_sprite(&(SpriteParams) { diff --git a/src/item.c b/src/item.c index 5360619f..9f872d86 100644 --- a/src/item.c +++ b/src/item.c @@ -54,7 +54,7 @@ static const char* item_indicator_sprite_name(ItemType type) { } static Sprite* item_sprite(ItemType type) { - return get_sprite(item_sprite_name(type)); + return res_sprite(item_sprite_name(type)); } static Sprite* item_indicator_sprite(ItemType type) { @@ -62,7 +62,7 @@ static Sprite* item_indicator_sprite(ItemType type) { if(name == NULL) { return NULL; } - return get_sprite(name); + return res_sprite(name); } static void ent_draw_item(EntityInterface *ent) { diff --git a/src/laser.c b/src/laser.c index 8767f1c4..7cbe2383 100644 --- a/src/laser.c +++ b/src/laser.c @@ -123,7 +123,7 @@ void lasers_preload(void) { lasers.quad_generic.primitive = PRIM_TRIANGLE_STRIP; lasers.quad_generic.vertex_array = lasers.varr; - lasers.shader_generic = r_shader_get("laser_generic"); + lasers.shader_generic = res_shader("laser_generic"); lasers.force_generic = env_get_int("TAISEI_FORCE_GENERIC_LASER_SHADER", false); } @@ -589,7 +589,7 @@ bool laser_intersects_circle(Laser *l, Circle circle) { cmplx las_linear(Laser *l, float t) { if(t == EVENT_BIRTH) { - l->shader = r_shader_get_optional("lasers/linear"); + l->shader = res_shader_optional("lasers/linear"); l->collision_step = fmax(3, l->timespan/10); return 0; } @@ -599,7 +599,7 @@ cmplx las_linear(Laser *l, float t) { cmplx las_accel(Laser *l, float t) { if(t == EVENT_BIRTH) { - l->shader = r_shader_get_optional("lasers/accelerated"); + l->shader = res_shader_optional("lasers/accelerated"); l->collision_step = fmax(3, l->timespan/10); return 0; } @@ -612,7 +612,7 @@ cmplx las_weird_sine(Laser *l, float t) { // [0] = velocity; [1] = s // do we even still need this? if(t == EVENT_BIRTH) { - l->shader = r_shader_get_optional("lasers/weird_sine"); + l->shader = res_shader_optional("lasers/weird_sine"); return 0; } @@ -624,7 +624,7 @@ cmplx las_sine(Laser *l, float t) { // [0] = velocity; [1] = sine // this is actually shaped like a sine wave if(t == EVENT_BIRTH) { - l->shader = r_shader_get_optional("lasers/sine"); + l->shader = res_shader_optional("lasers/sine"); return 0; } @@ -643,7 +643,7 @@ cmplx las_sine_expanding(Laser *l, float t) { // [0] = velocity; [1] = sine ampl // XXX: this is also a "weird" one if(t == EVENT_BIRTH) { - l->shader = r_shader_get_optional("lasers/sine_expanding"); + l->shader = res_shader_optional("lasers/sine_expanding"); return 0; } @@ -661,7 +661,7 @@ cmplx las_sine_expanding(Laser *l, float t) { // [0] = velocity; [1] = sine ampl cmplx las_turning(Laser *l, float t) { // [0] = vel0; [1] = vel1; [2] r: turn begin time, i: turn end time if(t == EVENT_BIRTH) { - l->shader = r_shader_get_optional("lasers/turning"); + l->shader = res_shader_optional("lasers/turning"); return 0; } @@ -681,7 +681,7 @@ cmplx las_turning(Laser *l, float t) { // [0] = vel0; [1] = vel1; [2] r: turn be cmplx las_circle(Laser *l, float t) { if(t == EVENT_BIRTH) { - l->shader = r_shader_get_optional("lasers/circle"); + l->shader = res_shader_optional("lasers/circle"); return 0; } diff --git a/src/menu/charselect.c b/src/menu/charselect.c index 48b624c6..dc039120 100644 --- a/src/menu/charselect.c +++ b/src/menu/charselect.c @@ -96,7 +96,7 @@ static void update_char_menu(MenuData *menu) { PlayerMode *m = plrmode_find(pchar->id, SELECTED_SUBSHOT(menu)); assume(m != NULL); - Font *font = get_font("standard"); + Font *font = res_font("standard"); char buf[256] = { 0 }; text_wrap(font, m->description, DESCRIPTION_WIDTH, buf, sizeof(buf)); double height = text_height(font, buf, 0) + font_get_lineskip(font) * 2; @@ -213,7 +213,7 @@ void draw_char_menu(MenuData *menu) { }; r_draw_sprite(&portrait_params); - portrait_params.sprite_ptr = get_sprite(face); + portrait_params.sprite_ptr = res_sprite(face); r_draw_sprite(&portrait_params); r_mat_mv_push(); @@ -257,7 +257,7 @@ void draw_char_menu(MenuData *menu) { ShotModeID current_subshot = SELECTED_SUBSHOT(menu); float f = menu->drawdata[0]-PLR_SHOT_A; - float selbg_ofs = 200 + (100-70)*f-20*f - font_get_lineskip(get_font("standard")) * 0.7; + float selbg_ofs = 200 + (100-70)*f-20*f - font_get_lineskip(res_font("standard")) * 0.7; r_color4(0, 0, 0, 0.5); r_shader_standard_notex(); diff --git a/src/menu/common.c b/src/menu/common.c index 3bc71a09..0b380e27 100644 --- a/src/menu/common.c +++ b/src/menu/common.c @@ -183,7 +183,7 @@ void start_game_no_difficulty_menu(MenuData *m, void *arg) { } void draw_menu_selector(float x, float y, float w, float h, float t) { - Sprite *bg = get_sprite("part/smoke"); + Sprite *bg = res_sprite("part/smoke"); r_mat_mv_push(); r_mat_mv_translate(x, y, 0); r_mat_mv_scale(w / bg->w, h / bg->h, 1); @@ -198,7 +198,7 @@ void draw_menu_selector(float x, float y, float w, float h, float t) { void draw_menu_title(MenuData *m, const char *title) { text_draw(title, &(TextParams) { - .pos = { (text_width(get_font("big"), title, 0) + 10) * (1.0 - menu_fade(m)), 30 }, + .pos = { (text_width(res_font("big"), title, 0) + 10) * (1.0 - menu_fade(m)), 30 }, .align = ALIGN_RIGHT, .font = "big", .color = RGB(1, 1, 1), @@ -212,7 +212,7 @@ void draw_menu_list(MenuData *m, float x, float y, void (*draw)(MenuEntry*, int, r_mat_mv_translate(x, y + offset, 0); draw_menu_selector(m->drawdata[0], m->drawdata[2], m->drawdata[1], 34, m->frames); - ShaderProgram *text_shader = r_shader_get("text_default"); + ShaderProgram *text_shader = res_shader("text_default"); dynarray_foreach(&m->entries, int i, MenuEntry *e, { float p = offset + 20*i; @@ -260,7 +260,7 @@ void animate_menu_list_entries(MenuData *m) { void animate_menu_list(MenuData *m) { MenuEntry *s = dynarray_get_ptr(&m->entries, m->cursor); - int w = text_width(get_font("standard"), s->name, 0); + int w = text_width(res_font("standard"), s->name, 0); fapproach_asymptotic_p(&m->drawdata[0], 10 + w * 0.5, 0.1, 1e-5); fapproach_asymptotic_p(&m->drawdata[1], w * 2, 0.1, 1e-5); diff --git a/src/menu/ingamemenu.c b/src/menu/ingamemenu.c index 239b8e5a..e4e21bb4 100644 --- a/src/menu/ingamemenu.c +++ b/src/menu/ingamemenu.c @@ -170,7 +170,7 @@ void draw_ingame_menu_bg(MenuData *menu, float f) { void update_ingame_menu(MenuData *menu) { menu->drawdata[0] += (menu->cursor*35 - menu->drawdata[0])/7.0; - menu->drawdata[1] += (text_width(get_font("standard"), dynarray_get(&menu->entries, menu->cursor).name, 0) - menu->drawdata[1])/10.0; + menu->drawdata[1] += (text_width(res_font("standard"), dynarray_get(&menu->entries, menu->cursor).name, 0) - menu->drawdata[1])/10.0; } void draw_ingame_menu(MenuData *menu) { diff --git a/src/menu/musicroom.c b/src/menu/musicroom.c index 60c38777..c5dd2e73 100644 --- a/src/menu/musicroom.c +++ b/src/menu/musicroom.c @@ -97,7 +97,7 @@ static void musicroom_draw_item(MenuEntry *e, int i, int cnt) { TextParams tparams = { .pos = { 20 - e->drawdata, 20 * i }, .shader_ptr = p->text_shader, - .font_ptr = get_font("standard"), + .font_ptr = res_font("standard"), .color = &clr, }; bool kerning_saved = font_get_kerning_enabled(tparams.font_ptr); @@ -149,8 +149,8 @@ static void musicroom_draw(MenuData *m) { r_mat_mv_pop(); r_state_pop(); - Font *const text_font = get_font("standard"); - ShaderProgram *const text_shader = r_shader_get("text_default"); + Font *const text_font = res_font("standard"); + ShaderProgram *const text_shader = res_shader("text_default"); const float text_x = 50; const float text_y = SCREEN_H - comment_height + font_get_lineskip(text_font) * 1.5 + comment_offset; @@ -225,7 +225,7 @@ static void add_bgm(MenuData *m, const char *bgm) { MusicEntryParam *p = calloc(1, sizeof(*p)); p->bgm = bgm; p->bgm_meta = meta; - p->text_shader = r_shader_get("text_default"); + p->text_shader = res_shader("text_default"); if(progress_is_bgm_unlocked(bgm)) { p->state |= MSTATE_UNLOCKED; diff --git a/src/menu/options.c b/src/menu/options.c index 03898fd0..7dad79c0 100644 --- a/src/menu/options.c +++ b/src/menu/options.c @@ -1019,8 +1019,8 @@ static void draw_options_menu(MenuData *menu) { int val = bind_getvalue(bind); if(bind->configentry == CONFIG_PRACTICE_POWER) { - Font *fnt_int = get_font("standard"); - Font *fnt_fract = get_font("small"); + Font *fnt_int = res_font("standard"); + Font *fnt_fract = res_font("small"); draw_fraction( val, @@ -1036,7 +1036,7 @@ static void draw_options_menu(MenuData *menu) { } else if(bind->values) { for(j = bind->displaysingle? val : bind->valrange_max; (j+1) && (!bind->displaysingle || j == val); --j) { if(j != bind->valrange_max && !bind->displaysingle) { - origin -= text_width(get_font("standard"), bind->values[j+1], 0) + 5; + origin -= text_width(res_font("standard"), bind->values[j+1], 0) + 5; } if(val == j) { diff --git a/src/menu/replayview.c b/src/menu/replayview.c index 2b5f8564..b283169f 100644 --- a/src/menu/replayview.c +++ b/src/menu/replayview.c @@ -172,8 +172,8 @@ static void replayview_draw_messagebox(MenuData* m) { ReplayviewContext *ctx = m->context; MenuEntry *e = dynarray_get_ptr(&m->entries, 0); float alpha = 1 - ctx->sub_fade; - float height = font_get_lineskip(get_font("standard")) * 2; - float width = text_width(get_font("standard"), e->name, 0) + 64; + float height = font_get_lineskip(res_font("standard")) * 2; + float width = text_width(res_font("standard"), e->name, 0) + 64; replayview_draw_submenu_bg(width, height, alpha); text_draw(e->name, &(TextParams) { @@ -290,8 +290,8 @@ static void replayview_drawitem(MenuEntry *e, int item, int cnt) { } switch(a) { - case ALIGN_CENTER: o += csize * 0.5 - text_width(get_font("standard"), tmp, 0) * 0.5; break; - case ALIGN_RIGHT: o += csize - text_width(get_font("standard"), tmp, 0); break; + case ALIGN_CENTER: o += csize * 0.5 - text_width(res_font("standard"), tmp, 0) * 0.5; break; + case ALIGN_RIGHT: o += csize - text_width(res_font("standard"), tmp, 0); break; default: break; } diff --git a/src/player.c b/src/player.c index f316b0c9..b05c584d 100644 --- a/src/player.c +++ b/src/player.c @@ -103,7 +103,7 @@ void player_free(Player *plr) { static void player_full_power(Player *plr) { stage_clear_hazards(CLEAR_HAZARDS_ALL); - stagetext_add("Full Power!", VIEWPORT_W * 0.5 + VIEWPORT_H * 0.33 * I, ALIGN_CENTER, get_font("big"), RGB(1, 1, 1), 0, 60, 20, 20); + stagetext_add("Full Power!", VIEWPORT_W * 0.5 + VIEWPORT_H * 0.33 * I, ALIGN_CENTER, res_font("big"), RGB(1, 1, 1), 0, 60, 20, 20); } bool player_set_power(Player *plr, short npow) { @@ -196,7 +196,7 @@ void player_draw_overlay(Player *plr) { float spell_x = 128 * (1 - pow(1 - spell_in, 5)) + (VIEWPORT_W + 256) * pow(1 - spell_in, 3); float spell_y = VIEWPORT_H - 128 * sqrt(a); - Sprite *spell_spr = get_sprite("spell"); + Sprite *spell_spr = res_sprite("spell"); r_draw_sprite(&(SpriteParams) { .sprite_ptr = spell_spr, @@ -205,7 +205,7 @@ void player_draw_overlay(Player *plr) { .scale.both = 3 - 2 * (1 - pow(1 - spell_in, 3)) + 2 * (1 - spell_out), }); - Font *font = get_font("standard"); + Font *font = res_font("standard"); r_mat_mv_push(); r_mat_mv_translate(spell_x - spell_spr->w * 0.5 + 10, spell_y + 5 - font_get_metrics(font)->descent, 0); @@ -316,7 +316,7 @@ static void player_draw_indicators(EntityInterface *ent) { char buf[64]; format_huge_num(0, plr->powersurge.bonus.baseline, sizeof(buf), buf); - Font *fnt = get_font("monotiny"); + Font *fnt = res_font("monotiny"); float x = crealf(pos); float y = cimagf(pos) + 80; @@ -352,7 +352,7 @@ DEFINE_TASK(player_indicators) { indicators->plr = TASK_BIND(ARGS.plr); indicators->ent.draw_layer = LAYER_PLAYER_FOCUS; indicators->ent.draw_func = player_draw_indicators; - indicators->sprites.focus = get_sprite("focus"); + indicators->sprites.focus = res_sprite("focus"); Player *plr = indicators->plr; @@ -520,7 +520,7 @@ static void player_powersurge_logic(Player *plr) { ); if(!(global.frames % 6) && plr->powersurge.bonus.discharge_range > 0) { - Sprite *spr = get_sprite("part/powersurge_field"); + Sprite *spr = res_sprite("part/powersurge_field"); double scale = 2 * plr->powersurge.bonus.discharge_range / spr->w; double angle = rng_angle(); @@ -695,7 +695,7 @@ static bool player_powersurge(Player *plr) { play_sound("powersurge_start"); collect_all_items(1); - stagetext_add("Power Surge!", plr->pos - 64 * I, ALIGN_CENTER, get_font("standard"), RGBA(0.75, 0.75, 0.75, 0.75), 0, 45, 10, 20); + stagetext_add("Power Surge!", plr->pos - 64 * I, ALIGN_CENTER, res_font("standard"), RGBA(0.75, 0.75, 0.75, 0.75), 0, 45, 10, 20); return true; } @@ -766,7 +766,7 @@ static void player_powersurge_expired(Player *plr) { PowerSurgeBonus bonus; player_powersurge_calc_bonus(plr, &bonus); - Sprite *blast = get_sprite("part/blast_huge_halo"); + Sprite *blast = res_sprite("part/blast_huge_halo"); float scale = 2 * bonus.discharge_range / blast->w; play_sound("powersurge_end"); @@ -1534,7 +1534,7 @@ static void add_score_text(Player *plr, cmplx location, uint points, bool is_piv } stxt = stagetext_add( - NULL, location, ALIGN_CENTER, get_font("small"), &c, + NULL, location, ALIGN_CENTER, res_font("small"), &c, timings.delay, timings.lifetime, timings.fadeintime, timings.fadeouttime ); diff --git a/src/plrmodes.c b/src/plrmodes.c index 491d20f6..bb1bbd82 100644 --- a/src/plrmodes.c +++ b/src/plrmodes.c @@ -66,7 +66,7 @@ int plrchar_player_anim_name(PlayerCharacter *pc, size_t bufsize, char buf[bufsi Animation *plrchar_player_anim(PlayerCharacter *pc) { char buf[64]; plrchar_player_anim_name(pc, sizeof(buf), buf); - return get_ani(buf); + return res_anim(buf); } int plrmode_repr(char *out, size_t outsize, PlayerMode *mode, bool internal) { diff --git a/src/plrmodes/marisa.c b/src/plrmodes/marisa.c index d598e5e5..0d74b1e3 100644 --- a/src/plrmodes/marisa.c +++ b/src/plrmodes/marisa.c @@ -50,7 +50,7 @@ double marisa_common_property(Player *plr, PlrProperty prop) { DEFINE_EXTERN_TASK(marisa_common_shot_forward) { Player *plr = TASK_BIND(ARGS.plr); - ShaderProgram *bolt_shader = r_shader_get("sprite_particle"); + ShaderProgram *bolt_shader = res_shader("sprite_particle"); real damage = ARGS.damage; int delay = ARGS.delay; diff --git a/src/plrmodes/marisa_a.c b/src/plrmodes/marisa_a.c index cf6a6350..2202ec7b 100644 --- a/src/plrmodes/marisa_a.c +++ b/src/plrmodes/marisa_a.c @@ -190,15 +190,15 @@ static void marisa_laser_draw_lasers(EntityInterface *ent) { MarisaAController *ctrl = ENT_CAST(ent, MarisaAController); real t = global.frames; - ShaderProgram *shader = r_shader_get("marisa_laser"); + ShaderProgram *shader = res_shader("marisa_laser"); Uniform *u_clr0 = r_shader_uniform(shader, "color0"); Uniform *u_clr1 = r_shader_uniform(shader, "color1"); Uniform *u_clr_phase = r_shader_uniform(shader, "color_phase"); Uniform *u_clr_freq = r_shader_uniform(shader, "color_freq"); Uniform *u_alpha = r_shader_uniform(shader, "alphamod"); Uniform *u_length = r_shader_uniform(shader, "laser_length"); - Texture *tex0 = r_texture_get("part/marisa_laser0"); - Texture *tex1 = r_texture_get("part/marisa_laser1"); + Texture *tex0 = res_texture("part/marisa_laser0"); + Texture *tex1 = res_texture("part/marisa_laser1"); FBPair *fbp_aux = stage_get_fbpair(FBPAIR_FG_AUX); Framebuffer *target_fb = r_framebuffer_current(); @@ -260,8 +260,8 @@ static void marisa_laser_draw_lasers(EntityInterface *ent) { } SpriteParams sp = { - .sprite_ptr = get_sprite("part/smoothdot"), - .shader_ptr = r_shader_get("sprite_default"), + .sprite_ptr = res_sprite("part/smoothdot"), + .shader_ptr = res_shader("sprite_default"), }; for(MarisaALaser *laser = ctrl->lasers.first; laser; laser = laser->next) { @@ -339,7 +339,7 @@ TASK(marisa_laser_slave_shot, { Player *plr = ctrl->plr; MarisaASlave *slave = TASK_BIND(ARGS.slave); - Animation *fire_anim = get_ani("fire"); + Animation *fire_anim = res_anim("fire"); AniSequence *fire_anim_seq = get_ani_sequence(fire_anim, "main"); MarisaALaser *active_laser = NULL; @@ -402,8 +402,8 @@ TASK(marisa_laser_slave, { slave->ent.draw_func = marisa_laser_draw_slave; slave->ent.draw_layer = LAYER_PLAYER_SLAVE; slave->pos = plr->pos; - slave->shader = r_shader_get("sprite_hakkero"); - slave->sprite = get_sprite("hakkero"); + slave->shader = res_shader("sprite_hakkero"); + slave->sprite = res_sprite("hakkero"); INVOKE_SUBTASK_WHEN(&ctrl->events.slaves_expired, common_set_bitflags, .pflags = &slave->alive, @@ -521,8 +521,8 @@ TASK(marisa_laser_masterspark, { MarisaAController *ctrl; }) { int t = 0; - Sprite *star_spr = get_sprite("part/maristar_orbit"); - Sprite *smoke_spr = get_sprite("part/smoke"); + Sprite *star_spr = res_sprite("part/maristar_orbit"); + Sprite *smoke_spr = res_sprite("part/smoke"); do { real bomb_progress = player_get_bomb_progress(plr); diff --git a/src/plrmodes/marisa_b.c b/src/plrmodes/marisa_b.c index e26750f6..4388674e 100644 --- a/src/plrmodes/marisa_b.c +++ b/src/plrmodes/marisa_b.c @@ -180,7 +180,7 @@ TASK(marisa_star_slave_shot, { Player *plr = ctrl->plr; MarisaBSlave *slave = TASK_BIND(ARGS.slave); - ShaderProgram *shot_shader = r_shader_get("sprite_particle"); + ShaderProgram *shot_shader = res_shader("sprite_particle"); real nphase = ARGS.phase / M_TAU; real damage = SHOT_SLAVE_DAMAGE; @@ -220,8 +220,8 @@ TASK(marisa_star_slave, { MarisaBSlave *slave = TASK_HOST_ENT(MarisaBSlave); slave->alive = 1; slave->pos = plr->pos; - slave->shader = r_shader_get("sprite_hakkero"); - slave->sprite = get_sprite("hakkero"); + slave->shader = res_shader("sprite_hakkero"); + slave->sprite = res_sprite("hakkero"); slave->ent.draw_func = marisa_star_draw_slave; slave->ent.draw_layer = LAYER_PLAYER_SLAVE; @@ -397,11 +397,11 @@ TASK(marisa_star_bomb_background, { MarisaBController *ctrl; }) { MarisaBController *ctrl = ARGS.ctrl; Player *plr = ctrl->plr; - ShaderProgram *bg_shader = r_shader_get("maristar_bombbg"); + ShaderProgram *bg_shader = res_shader("maristar_bombbg"); Uniform *u_t = r_shader_uniform(bg_shader, "t"); Uniform *u_decay = r_shader_uniform(bg_shader, "decay"); Uniform *u_plrpos = r_shader_uniform(bg_shader, "plrpos"); - Texture *bg_tex = r_texture_get("marisa_bombbg"); + Texture *bg_tex = res_texture("marisa_bombbg"); do { WAIT_EVENT_OR_DIE(&stage_get_draw_events()->background_drawn); @@ -476,10 +476,10 @@ TASK(marisa_star_controller, { BoxedPlayer plr; }) { ctrl->plr = TASK_BIND(ARGS.plr); TASK_HOST_EVENTS(ctrl->events); - ctrl->sprites.fairy_circle = get_sprite("fairy_circle"); - ctrl->sprites.lightningball = get_sprite("part/lightningball"); - ctrl->sprites.maristar_orbit = get_sprite("part/maristar_orbit"); - ctrl->sprites.stardust = get_sprite("part/stardust"); + ctrl->sprites.fairy_circle = res_sprite("fairy_circle"); + ctrl->sprites.lightningball = res_sprite("part/lightningball"); + ctrl->sprites.maristar_orbit = res_sprite("part/maristar_orbit"); + ctrl->sprites.stardust = res_sprite("part/stardust"); INVOKE_SUBTASK(marisa_star_power_handler, ctrl); INVOKE_SUBTASK(marisa_star_bomb_handler, ctrl); diff --git a/src/plrmodes/reimu.c b/src/plrmodes/reimu.c index e5ebc3cb..f79733ef 100644 --- a/src/plrmodes/reimu.c +++ b/src/plrmodes/reimu.c @@ -62,7 +62,7 @@ TASK(reimu_ofuda_trail, { BoxedProjectile trail; }) { Projectile *reimu_common_ofuda_swawn_trail(Projectile *p) { Projectile *trail = PARTICLE( // .sprite_ptr = p->sprite, - .sprite_ptr = get_sprite("proj/hghost"), + .sprite_ptr = res_sprite("proj/hghost"), .color = &p->color, .timeout = 12, .pos = p->pos + p->move.velocity * 0.3, diff --git a/src/plrmodes/reimu_a.c b/src/plrmodes/reimu_a.c index 79dc5e18..c37612f1 100644 --- a/src/plrmodes/reimu_a.c +++ b/src/plrmodes/reimu_a.c @@ -197,7 +197,7 @@ static void reimu_spirit_bomb_impact_balls(cmplx pos, int count) { for(int i = 0; i < count; i++) { PARTICLE( - .sprite_ptr = get_sprite("proj/glowball"), + .sprite_ptr = res_sprite("proj/glowball"), .shader = "sprite_bullet", .color = HSLA(3 * (float)i / count + offset, 1, 0.5, 0), .timeout = 60, @@ -292,8 +292,8 @@ TASK(reimu_spirit_bomb_orb_visual, { BoxedProjectile orb; }) { Projectile *orb = TASK_BIND(ARGS.orb); DECLARE_ENT_ARRAY(Projectile, components, 3); - Sprite *glowball = get_sprite("proj/glowball"); - ShaderProgram *shader = r_shader_get("sprite_bullet"); + Sprite *glowball = res_sprite("proj/glowball"); + ShaderProgram *shader = res_shader("sprite_bullet"); for(int i = 0; i < components.capacity; ++i) { ENT_ARRAY_ADD(&components, PARTICLE( @@ -377,7 +377,7 @@ TASK(reimu_spirit_bomb_orb, { BoxedPlayer plr; int index; real angle; }) { trail_vel *= 3 * circlestrength / cabs(trail_vel); PARTICLE( - .sprite_ptr = get_sprite("part/stain"), + .sprite_ptr = res_sprite("part/stain"), // .color = reimu_spirit_orb_color(&(Color){0}, i), .color = HSLA(t/orb->timeout, 0.3, 0.3, 0.0), .pos = trail_pos, @@ -468,8 +468,8 @@ static void reimu_spirit_draw_slave(EntityInterface *ent) { static ReimuASlave *reimu_spirit_create_slave(ReimuAController *ctrl, const Color *color) { Player *plr = ctrl->plr; ReimuASlave *slave = TASK_HOST_ENT(ReimuASlave); - slave->sprite = get_sprite("yinyang"); - slave->shader = r_shader_get("sprite_yinyang"); + slave->sprite = res_sprite("yinyang"); + slave->shader = res_shader("sprite_yinyang"); slave->pos = plr->pos; slave->color = *color; slave->ent.draw_layer = LAYER_PLAYER_SLAVE; @@ -526,8 +526,8 @@ TASK(reimu_spirit_slave_needle_shot, { Player *plr = ARGS.ctrl->plr; ReimuASlave *slave = TASK_BIND(ARGS.slave); - ShaderProgram *shader = r_shader_get("sprite_particle"); - Sprite *particle_spr = get_sprite("part/stain"); + ShaderProgram *shader = res_shader("sprite_particle"); + Sprite *particle_spr = res_sprite("part/stain"); real damage = SHOT_SLAVE_NEEDLE_DMG; real delay = SHOT_SLAVE_NEEDLE_DELAY; @@ -593,8 +593,8 @@ TASK(reimu_spirit_slave_homing_shot, { Player *plr = ARGS.ctrl->plr; ReimuASlave *slave = TASK_BIND(ARGS.slave); - ShaderProgram *shader = r_shader_get("sprite_particle"); - Sprite *particle_spr = get_sprite("part/stain"); + ShaderProgram *shader = res_shader("sprite_particle"); + Sprite *particle_spr = res_sprite("part/stain"); cmplx vel = ARGS.vel; cmplx pdir = cnormalize(vel); @@ -766,7 +766,7 @@ TASK(reimu_spirit_shot_forward, { ReimuAController *ctrl; }) { ReimuAController *ctrl = ARGS.ctrl; Player *plr = ctrl->plr; real dir = 1; - ShaderProgram *shader = r_shader_get("sprite_particle"); + ShaderProgram *shader = res_shader("sprite_particle"); for(;;) { WAIT_EVENT_OR_DIE(&plr->events.shoot); @@ -798,7 +798,7 @@ TASK(reimu_spirit_shot_volley_bullet, { Player *plr; cmplx offset; cmplx vel; re TASK(reimu_spirit_shot_volley, { ReimuAController *ctrl; }) { Player *plr = ARGS.ctrl->plr; - ShaderProgram *shader = r_shader_get("sprite_particle"); + ShaderProgram *shader = res_shader("sprite_particle"); for(;;) { WAIT_EVENT_OR_DIE(&plr->events.shoot); diff --git a/src/plrmodes/reimu_b.c b/src/plrmodes/reimu_b.c index 2b8815a5..3d046728 100644 --- a/src/plrmodes/reimu_b.c +++ b/src/plrmodes/reimu_b.c @@ -152,8 +152,8 @@ TASK(reimu_dream_bomb_barrage, { ReimuBController *ctrl; }) { ReimuBController *ctrl = ARGS.ctrl; Player *plr = ctrl->plr; - Sprite *spr_proj = get_sprite("proj/glowball"); - Sprite *spr_impact = get_sprite("part/blast"); + Sprite *spr_proj = res_sprite("proj/glowball"); + Sprite *spr_impact = res_sprite("part/blast"); int t = 0; @@ -424,7 +424,7 @@ TASK(reimu_dream_slave_shot, { Player *plr = ctrl->plr; ReimuBSlave *slave = TASK_BIND(ARGS.slave); cmplx vel = ARGS.vel; - ShaderProgram *shader = r_shader_get("sprite_particle"); + ShaderProgram *shader = res_shader("sprite_particle"); for(;;) { WAIT_EVENT_OR_DIE(&plr->events.shoot); @@ -450,8 +450,8 @@ TASK(reimu_dream_slave, { ReimuBSlave *slave = TASK_HOST_ENT(ReimuBSlave); slave->ent.draw_layer = LAYER_PLAYER_SLAVE; slave->ent.draw_func = reimu_dream_draw_slave; - slave->sprite = get_sprite("yinyang"), - slave->shader = r_shader_get("sprite_yinyang"), + slave->sprite = res_sprite("yinyang"), + slave->shader = res_shader("sprite_yinyang"), slave->pos = plr->pos; slave->alive = 1; @@ -564,7 +564,7 @@ TASK(reimu_dream_ofuda, { ReimuBController *ctrl; cmplx pos; cmplx vel; ShaderPr TASK(reimu_dream_shot_forward, { ReimuBController *ctrl; }) { ReimuBController *ctrl = ARGS.ctrl; Player *plr = ctrl->plr; - ShaderProgram *ofuda_shader = r_shader_get("sprite_particle"); + ShaderProgram *ofuda_shader = res_shader("sprite_particle"); for(;;) { WAIT_EVENT_OR_DIE(&plr->events.shoot); @@ -626,8 +626,8 @@ TASK(reimu_dream_controller, { BoxedPlayer plr; }) { ctrl->plr = TASK_BIND(ARGS.plr); TASK_HOST_EVENTS(ctrl->events); - ctrl->yinyang_shader = r_shader_get("sprite_yinyang"); - ctrl->yinyang_sprite = get_sprite("yinyang"); + ctrl->yinyang_shader = res_shader("sprite_yinyang"); + ctrl->yinyang_sprite = res_sprite("yinyang"); ctrl->ent.draw_func = reimu_dream_draw_gaps; ctrl->ent.draw_layer = LAYER_PLAYER_FOCUS; diff --git a/src/plrmodes/youmu.c b/src/plrmodes/youmu.c index 9206a609..93bcc678 100644 --- a/src/plrmodes/youmu.c +++ b/src/plrmodes/youmu.c @@ -71,10 +71,10 @@ void youmu_common_init_bomb_background(YoumuBombBGData *bg_data) { cfg.tex_params.wrap.t = TEX_WRAP_MIRROR; bg_data->buffer = stage_add_background_framebuffer("Youmu bomb FB", 0.25, 1, 1, &cfg); - bg_data->shader = r_shader_get("youmu_bomb_bg"); + bg_data->shader = res_shader("youmu_bomb_bg"); bg_data->uniforms.petals = r_shader_uniform(bg_data->shader, "petals"); bg_data->uniforms.time = r_shader_uniform(bg_data->shader, "time"); - bg_data->texture = r_texture_get("youmu_bombbg1"); + bg_data->texture = res_texture("youmu_bombbg1"); } static void capture_frame(Framebuffer *dest, Framebuffer *src) { diff --git a/src/plrmodes/youmu_a.c b/src/plrmodes/youmu_a.c index dfbf66f2..6f930835 100644 --- a/src/plrmodes/youmu_a.c +++ b/src/plrmodes/youmu_a.c @@ -176,7 +176,7 @@ TASK(youmu_mirror_myon_proj, { cmplx pos; cmplx vel; real dmg; const Color *clr; trail_color.a = 0; color_mul_scalar(&trail_color, 0.075); - Sprite *trail_sprite = get_sprite("part/boss_shadow"); + Sprite *trail_sprite = res_sprite("part/boss_shadow"); MoveParams trail_move = move_linear(ARGS.vel * 0.8); for(int t = 1;; ++t) { @@ -232,7 +232,7 @@ TASK(youmu_mirror_myon_shot, { YoumuAController *ctrl; }) { YoumuAController *ctrl = ARGS.ctrl; YoumuAMyon *myon = &ctrl->myon; Player *plr = ctrl->plr; - ShaderProgram *shader = r_shader_get("sprite_youmu_myon_shot"); + ShaderProgram *shader = res_shader("sprite_youmu_myon_shot"); for(;;) { WAIT_EVENT_OR_DIE(&plr->events.shoot); @@ -291,9 +291,9 @@ TASK(youmu_mirror_myon, { YoumuAController *ctrl; }) { YoumuAMyon *myon = &ctrl->myon; Player *plr = ctrl->plr; - myon->sprites.trail = get_sprite("part/myon"); - myon->sprites.smoke = get_sprite("part/smoke"); - myon->sprites.stardust = get_sprite("part/stardust"); + myon->sprites.trail = res_sprite("part/myon"); + myon->sprites.smoke = res_sprite("part/smoke"); + myon->sprites.stardust = res_sprite("part/stardust"); const real distance = 40; const real focus_rate = 1.0/30.0; @@ -470,7 +470,7 @@ TASK(youmu_mirror_bomb_controller, { YoumuAController *ctrl; }) { ProjFlags pflags = PFLAG_MANUALANGLE | PFLAG_NOREFLECT; int t = 0; - ShaderProgram *silhouette_shader = r_shader_get("sprite_silhouette"); + ShaderProgram *silhouette_shader = res_shader("sprite_silhouette"); do { pos += vel; @@ -515,7 +515,7 @@ TASK(youmu_mirror_bomb_postprocess, { YoumuAController *ctrl; }) { YoumuAMyon *myon = &ctrl->myon; CoEvent *pp_event = &stage_get_draw_events()->postprocess_before_overlay; - ShaderProgram *shader = r_shader_get("youmua_bomb"); + ShaderProgram *shader = res_shader("youmua_bomb"); Uniform *u_tbomb = r_shader_uniform(shader, "tbomb"); Uniform *u_myon = r_shader_uniform(shader, "myon"); Uniform *u_fill_overlay = r_shader_uniform(shader, "fill_overlay"); @@ -558,7 +558,7 @@ TASK(youmu_mirror_bomb_handler, { YoumuAController *ctrl; }) { TASK(youmu_mirror_shot_forward, { YoumuAController *ctrl; }) { YoumuAController *ctrl = ARGS.ctrl; Player *plr = ctrl->plr; - ShaderProgram *shader = r_shader_get("sprite_particle"); + ShaderProgram *shader = res_shader("sprite_particle"); for(int t = 0;;) { WAIT_EVENT_OR_DIE(&plr->events.shoot); @@ -596,10 +596,10 @@ TASK(youmu_mirror_shot_forward, { YoumuAController *ctrl; }) { TASK(youmu_mirror_controller, { BoxedPlayer plr; }) { YoumuAController *ctrl = TASK_MALLOC(sizeof(*ctrl)); ctrl->plr = TASK_BIND(ARGS.plr); - ctrl->sprites.arc = get_sprite("part/arc"); - ctrl->sprites.stain = get_sprite("part/stain"); - ctrl->sprites.petal = get_sprite("part/petal"); - ctrl->sprites.blast_huge_halo = get_sprite("part/blast_huge_halo"); + ctrl->sprites.arc = res_sprite("part/arc"); + ctrl->sprites.stain = res_sprite("part/stain"); + ctrl->sprites.petal = res_sprite("part/petal"); + ctrl->sprites.blast_huge_halo = res_sprite("part/blast_huge_halo"); youmu_common_init_bomb_background(&ctrl->bomb_bg); diff --git a/src/plrmodes/youmu_b.c b/src/plrmodes/youmu_b.c index 1d6a751d..1d8636c0 100644 --- a/src/plrmodes/youmu_b.c +++ b/src/plrmodes/youmu_b.c @@ -561,13 +561,13 @@ TASK(youmu_haunting_bomb_handler, { YoumuBController *ctrl; }) { TASK(youmu_haunting_controller, { BoxedPlayer plr; }) { YoumuBController *ctrl = TASK_MALLOC(sizeof(*ctrl)); ctrl->plr = TASK_BIND(ARGS.plr); - ctrl->sprites.blast_huge_halo = get_sprite("part/blast_huge_halo"); - ctrl->sprites.blast_huge_rays = get_sprite("part/blast_huge_rays"); - ctrl->sprites.petal = get_sprite("part/petal"); - ctrl->sprites.smoothdot = get_sprite("part/smoothdot"); - ctrl->sprites.stardust = get_sprite("part/stardust"); - ctrl->sprites.youmu_slice = get_sprite("part/youmu_slice"); - ctrl->shot_shader = r_shader_get("sprite_particle"); + ctrl->sprites.blast_huge_halo = res_sprite("part/blast_huge_halo"); + ctrl->sprites.blast_huge_rays = res_sprite("part/blast_huge_rays"); + ctrl->sprites.petal = res_sprite("part/petal"); + ctrl->sprites.smoothdot = res_sprite("part/smoothdot"); + ctrl->sprites.stardust = res_sprite("part/stardust"); + ctrl->sprites.youmu_slice = res_sprite("part/youmu_slice"); + ctrl->shot_shader = res_shader("sprite_particle"); youmu_common_init_bomb_background(&ctrl->bomb_bg); diff --git a/src/portrait.c b/src/portrait.c index bf3506df..fdcd47a1 100644 --- a/src/portrait.c +++ b/src/portrait.c @@ -29,7 +29,7 @@ int portrait_get_base_sprite_name(const char *charname, const char *variant, siz Sprite *portrait_get_base_sprite(const char *charname, const char *variant) { char buf[BUFFER_SIZE]; portrait_get_base_sprite_name(charname, variant, sizeof(buf), buf); - return get_sprite(buf); + return res_sprite(buf); } void portrait_preload_base_sprite(const char *charname, const char *variant, ResourceFlags rflags) { @@ -45,7 +45,7 @@ int portrait_get_face_sprite_name(const char *charname, const char *face, size_t Sprite *portrait_get_face_sprite(const char *charname, const char *face) { char buf[BUFFER_SIZE]; portrait_get_face_sprite_name(charname, face, sizeof(buf), buf); - return get_sprite(buf); + return res_sprite(buf); } void portrait_preload_face_sprite(const char *charname, const char *face, ResourceFlags rflags) { @@ -91,7 +91,7 @@ void portrait_render(Sprite *s_base, Sprite *s_face, Sprite *s_out) { sp.pos.x = spr_w * 0.5f - sprite_padded_offset_x(s_base); sp.pos.y = spr_h * 0.5f - sprite_padded_offset_y(s_base); sp.color = RGBA(1, 1, 1, 1); - sp.shader_ptr = r_shader_get("sprite_default"), + sp.shader_ptr = res_shader("sprite_default"), r_draw_sprite(&sp); sp.blend = BLEND_PREMUL_ALPHA; sp.sprite_ptr = s_face; diff --git a/src/projectile.c b/src/projectile.c index 133d8a4e..86d55116 100644 --- a/src/projectile.c +++ b/src/projectile.c @@ -53,7 +53,7 @@ static void process_projectile_args(ProjArgs *args, ProjArgs *defaults) { if(!args->shader_ptr) { if(args->shader) { - args->shader_ptr = r_shader_get(args->shader); + args->shader_ptr = res_shader(args->shader); } else { args->shader_ptr = defaults->shader_ptr; } @@ -859,7 +859,7 @@ Projectile *spawn_projectile_clear_effect(Projectile *proj) { v = proj->pos - proj->prevpos; } - Animation *ani = get_ani("part/bullet_clear"); + Animation *ani = res_anim("part/bullet_clear"); AniSequence *seq = get_ani_sequence(ani, "main"); Sprite *sprite_ref = animation_get_frame(ani, seq, 0); @@ -1226,11 +1226,11 @@ void projectiles_preload(void) { ht_create(&shader_sublayer_map); for(uint i = 0; i < num_shaders; ++i) { - ht_set(&shader_sublayer_map, r_shader_get(shaders[i]), i + 1); + ht_set(&shader_sublayer_map, res_shader(shaders[i]), i + 1); } - defaults_proj.shader_ptr = r_shader_get(defaults_proj.shader); - defaults_part.shader_ptr = r_shader_get(defaults_part.shader); + defaults_proj.shader_ptr = res_shader(defaults_proj.shader); + defaults_part.shader_ptr = res_shader(defaults_part.shader); } void projectiles_free(void) { diff --git a/src/projectile_prototypes.c b/src/projectile_prototypes.c index f6cbbab3..2e5f544f 100644 --- a/src/projectile_prototypes.c +++ b/src/projectile_prototypes.c @@ -29,7 +29,7 @@ static void pp_basic_init_projectile(ProjPrototype *proto, Projectile *p) { p->sprite = pdata->sprite ? pdata->sprite - : (pdata->sprite = get_sprite(pdata->sprite_name)); + : (pdata->sprite = res_sprite(pdata->sprite_name)); p->size = pdata->size; p->collision_size = pdata->collision_size; diff --git a/src/renderer/api.c b/src/renderer/api.c index 80ecf35e..3fe2fbc0 100644 --- a/src/renderer/api.c +++ b/src/renderer/api.c @@ -53,8 +53,8 @@ void r_post_init(void) { "standardnotex", NULL); - R.progs.standard = r_shader_get("standard"); - R.progs.standardnotex = r_shader_get("standardnotex"); + R.progs.standard = res_shader("standard"); + R.progs.standardnotex = res_shader("standardnotex"); r_shader_ptr(R.progs.standard); r_color4(1, 1, 1, 1); @@ -919,7 +919,7 @@ void _r_uniform_sampler_ptr(const char *uniform, Texture *tex) { void _r_uniform_ptr_sampler(Uniform *uniform, const char *tex) { ASSERT_UTYPE(uniform, UNIFORM_SAMPLER); - if(uniform) B.uniform(uniform, 0, 1, (Texture*[]) { r_texture_get(tex) }); + if(uniform) B.uniform(uniform, 0, 1, (Texture*[]) { res_texture(tex) }); } void _r_uniform_sampler(const char *uniform, const char *tex) { @@ -942,7 +942,7 @@ void _r_uniform_ptr_sampler_array(Uniform *uniform, uint offset, uint count, con const char **vptr = values; do { - *aptr++ = r_texture_get(*vptr++); + *aptr++ = res_texture(*vptr++); } while(aptr < aend); B.uniform(uniform, 0, 1, arr); diff --git a/src/renderer/api.h b/src/renderer/api.h index 268329cc..65993891 100644 --- a/src/renderer/api.h +++ b/src/renderer/api.h @@ -16,6 +16,8 @@ #include "color.h" #include "common/shaderlib/shaderlib.h" #include "resource/resource.h" +#include "resource/shader_program.h" +#include "resource/texture.h" typedef struct Texture Texture; typedef struct Framebuffer Framebuffer; @@ -810,20 +812,9 @@ void r_disable(RendererCapability cap) { r_capability(cap, false); } -INLINE -ShaderProgram* r_shader_get(const char *name) { - return get_resource_data(RES_SHADER_PROGRAM, name, RESF_DEFAULT); -} - -INLINE -ShaderProgram* r_shader_get_optional(const char *name) { - return get_resource_data(RES_SHADER_PROGRAM, name, RESF_OPTIONAL); -} - -INLINE -Texture* r_texture_get(const char *name) { - return get_resource_data(RES_TEXTURE, name, RESF_DEFAULT); -} +DEFINE_DEPRECATED_RESOURCE_GETTER(ShaderProgram, r_shader_get, res_shader) +DEFINE_DEPRECATED_RESOURCE_GETTER(ShaderProgram, r_shader_get_optional, res_shader_optional) +DEFINE_DEPRECATED_RESOURCE_GETTER(Texture, r_texture_get, res_texture) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated" @@ -854,7 +845,7 @@ void r_color3(float r, float g, float b) { INLINE attr_nonnull(1) void r_shader(const char *prog) { - r_shader_ptr(r_shader_get(prog)); + r_shader_ptr(res_shader(prog)); } INLINE diff --git a/src/renderer/common/sprite_batch.c b/src/renderer/common/sprite_batch.c index ca8e4632..846e5ad2 100644 --- a/src/renderer/common/sprite_batch.c +++ b/src/renderer/common/sprite_batch.c @@ -268,7 +268,7 @@ INLINE void _r_sprite_batch_process_params( if((*sprite = sprite_params->sprite_ptr) == NULL) { assert(sprite_params->sprite != NULL); - *sprite = get_sprite(sprite_params->sprite); + *sprite = res_sprite(sprite_params->sprite); } state_params->primary_texture = (*sprite)->tex; @@ -281,7 +281,7 @@ INLINE void _r_sprite_batch_process_params( if((state_params->shader = sprite_params->shader_ptr) == NULL) { if(sprite_params->shader != NULL) { - state_params->shader = r_shader_get(sprite_params->shader); + state_params->shader = res_shader(sprite_params->shader); } else { state_params->shader = r_shader_current(); } @@ -411,7 +411,7 @@ void _r_sprite_batch_end_frame(void) { global.fps.render.fps ); - Font *font = get_font("monotiny"); + Font *font = res_font("monotiny"); text_draw(buf, &(TextParams) { .pos = { 0, font_get_lineskip(font) }, .font_ptr = font, diff --git a/src/resource/animation.h b/src/resource/animation.h index 7f22122f..2f06fe1e 100644 --- a/src/resource/animation.h +++ b/src/resource/animation.h @@ -26,9 +26,9 @@ typedef struct Animation { int sprite_count; } Animation; -INLINE Animation *get_ani(const char *name) { - return get_resource(RES_ANIM, name, RESF_DEFAULT)->data; -} +DEFINE_RESOURCE_GETTER(Animation, res_anim, RES_ANIM) +DEFINE_OPTIONAL_RESOURCE_GETTER(Animation, res_anim_optional, RES_ANIM) +DEFINE_DEPRECATED_RESOURCE_GETTER(Animation, get_ani, res_anim) AniSequence *get_ani_sequence(Animation *ani, const char *seqname); diff --git a/src/resource/bgm.h b/src/resource/bgm.h index c245255e..aaff62e3 100644 --- a/src/resource/bgm.h +++ b/src/resource/bgm.h @@ -17,4 +17,8 @@ extern ResourceHandler bgm_res_handler; #define BGM_PATH_PREFIX "res/bgm/" +typedef struct Music Music; + +DEFINE_OPTIONAL_RESOURCE_GETTER(Music, res_bgm, RES_BGM) + #endif // IGUARD_resource_bgm_h diff --git a/src/resource/bgm_metadata.h b/src/resource/bgm_metadata.h index 55dcd694..2819c7de 100644 --- a/src/resource/bgm_metadata.h +++ b/src/resource/bgm_metadata.h @@ -23,4 +23,6 @@ typedef struct MusicMetadata { extern ResourceHandler bgm_metadata_res_handler; +DEFINE_OPTIONAL_RESOURCE_GETTER(Music, res_bgm_metadata, RES_BGM_METADATA) + #endif // IGUARD_resource_bgm_metadata_h diff --git a/src/resource/font.c b/src/resource/font.c index e39d98a0..293bc1d9 100644 --- a/src/resource/font.c +++ b/src/resource/font.c @@ -960,9 +960,9 @@ static Font *font_from_params(const TextParams *params) { if(font == NULL) { if(params->font != NULL) { - font = get_font(params->font); + font = res_font(params->font); } else { - font = get_font("standard"); + font = res_font("standard"); } } @@ -989,7 +989,7 @@ static double _text_ucs4_draw(Font *font, const uint32_t *ucs4text, const TextPa if((batch_state_params.shader = params->shader_ptr) == NULL) { if(params->shader != NULL) { - batch_state_params.shader = r_shader_get(params->shader); + batch_state_params.shader = res_shader(params->shader); } else { batch_state_params.shader = r_shader_current(); } diff --git a/src/resource/font.h b/src/resource/font.h index 885e71da..8f0597a1 100644 --- a/src/resource/font.h +++ b/src/resource/font.h @@ -76,9 +76,9 @@ typedef struct TextParams { Alignment align; } TextParams; -INLINE Font *get_font(const char *font) { - return get_resource_data(RES_FONT, font, RESF_DEFAULT); -} +DEFINE_RESOURCE_GETTER(Font, res_font, RES_FONT) +DEFINE_OPTIONAL_RESOURCE_GETTER(Font, res_font_optional, RES_FONT) +DEFINE_DEPRECATED_RESOURCE_GETTER(Font, get_font, res_font) ShaderProgram* text_get_default_shader(void) attr_returns_nonnull; diff --git a/src/resource/model.h b/src/resource/model.h index f7d1b0e8..4fa2b776 100644 --- a/src/resource/model.h +++ b/src/resource/model.h @@ -22,9 +22,9 @@ struct Model { Primitive primitive; }; -INLINE Model *get_model(const char *name) { - return get_resource(RES_MODEL, name, RESF_DEFAULT)->data; -} +DEFINE_RESOURCE_GETTER(Model, res_model, RES_MODEL) +DEFINE_OPTIONAL_RESOURCE_GETTER(Model, res_model_optional, RES_MODEL) +DEFINE_DEPRECATED_RESOURCE_GETTER(Model, get_model, res_model) extern ResourceHandler model_res_handler; diff --git a/src/resource/postprocess.h b/src/resource/postprocess.h index 88f5a35a..a94bc0a2 100644 --- a/src/resource/postprocess.h +++ b/src/resource/postprocess.h @@ -54,4 +54,6 @@ void postprocess(PostprocessShader *ppshaders, FBPair *fbos, PostprocessPrepareF extern ResourceHandler postprocess_res_handler; +DEFINE_OPTIONAL_RESOURCE_GETTER(PostprocessShader, res_postprocess, RES_POSTPROCESS) + #endif // IGUARD_resource_postprocess_h diff --git a/src/resource/resource.h b/src/resource/resource.h index eb3348f1..b279c570 100644 --- a/src/resource/resource.h +++ b/src/resource/resource.h @@ -139,4 +139,22 @@ void resource_util_strip_ext(char *path); char *resource_util_basename(const char *prefix, const char *path); const char *resource_util_filename(const char *path); +#define DEFINE_RESOURCE_GETTER(_type, _name, _enum) \ + attr_nonnull_all attr_returns_nonnull \ + INLINE _type *_name(const char *resname) { \ + return get_resource_data(_enum, resname, RESF_DEFAULT); \ + } + +#define DEFINE_OPTIONAL_RESOURCE_GETTER(_type, _name, _enum) \ + attr_nonnull_all \ + INLINE _type *_name(const char *resname) { \ + return get_resource_data(_enum, resname, RESF_OPTIONAL); \ + } + +#define DEFINE_DEPRECATED_RESOURCE_GETTER(_type, _name, _successor) \ + attr_deprecated("Use " #_successor "() instead") \ + INLINE _type *_name(const char *resname) { \ + return _successor(resname); \ + } + #endif // IGUARD_resource_resource_h diff --git a/src/resource/sfx.h b/src/resource/sfx.h index d813098a..3a155361 100644 --- a/src/resource/sfx.h +++ b/src/resource/sfx.h @@ -17,4 +17,8 @@ extern ResourceHandler sfx_res_handler; #define SFX_PATH_PREFIX "res/sfx/" +typedef struct Sound Sound; + +DEFINE_OPTIONAL_RESOURCE_GETTER(Sound, res_sfx, RES_SFX) + #endif // IGUARD_resource_sfx_h diff --git a/src/resource/shader_object.h b/src/resource/shader_object.h index ca7bbe69..fc1ec5f1 100644 --- a/src/resource/shader_object.h +++ b/src/resource/shader_object.h @@ -19,4 +19,7 @@ extern ResourceHandler shader_object_res_handler; #define SHOBJ_PATH_PREFIX "res/shader/" +DEFINE_RESOURCE_GETTER(ShaderObject, res_shader_object, RES_SHADER_OBJECT) +DEFINE_OPTIONAL_RESOURCE_GETTER(ShaderObject, res_shader_object_optional, RES_SHADER_OBJECT) + #endif // IGUARD_resource_shader_object_h diff --git a/src/resource/shader_program.h b/src/resource/shader_program.h index d343a0dc..5e56ad3f 100644 --- a/src/resource/shader_program.h +++ b/src/resource/shader_program.h @@ -20,4 +20,7 @@ extern ResourceHandler shader_program_res_handler; #define SHPROG_PATH_PREFIX "res/shader/" #define SHPROG_EXT ".prog" +DEFINE_RESOURCE_GETTER(ShaderProgram, res_shader, RES_SHADER_PROGRAM) +DEFINE_OPTIONAL_RESOURCE_GETTER(ShaderProgram, res_shader_optional, RES_SHADER_PROGRAM) + #endif // IGUARD_resource_shader_program_h diff --git a/src/resource/sprite.c b/src/resource/sprite.c index 98f13c59..f19051d5 100644 --- a/src/resource/sprite.c +++ b/src/resource/sprite.c @@ -136,7 +136,7 @@ Sprite *prefix_get_sprite(const char *name, const char *prefix) { char buf[plen + strlen(name) + 1]; strcpy(buf, prefix); strcpy(buf + plen, name); - Sprite *spr = get_sprite(buf); + Sprite *spr = res_sprite(buf); return spr; } @@ -161,7 +161,7 @@ static void draw_sprite_ex(float x, float y, float scale_x, float scale_y, Sprit } void draw_sprite(float x, float y, const char *name) { - draw_sprite_p(x, y, get_sprite(name)); + draw_sprite_p(x, y, res_sprite(name)); } void draw_sprite_p(float x, float y, Sprite *spr) { diff --git a/src/resource/sprite.h b/src/resource/sprite.h index e5bedebe..25e0a4a9 100644 --- a/src/resource/sprite.h +++ b/src/resource/sprite.h @@ -65,9 +65,9 @@ void sprite_set_denormalized_tex_coords(Sprite *restrict spr, FloatRect tc); void draw_sprite(float x, float y, const char *name); void draw_sprite_p(float x, float y, Sprite *spr); -INLINE Sprite *get_sprite(const char *name) { - return get_resource_data(RES_SPRITE, name, RESF_DEFAULT); -} +DEFINE_RESOURCE_GETTER(Sprite, res_sprite, RES_SPRITE) +DEFINE_OPTIONAL_RESOURCE_GETTER(Sprite, res_sprite_optional, RES_SPRITE) +DEFINE_DEPRECATED_RESOURCE_GETTER(Sprite, get_sprite, res_sprite) Sprite *prefix_get_sprite(const char *name, const char *prefix); diff --git a/src/resource/texture.c b/src/resource/texture.c index 47c52f91..14424c25 100644 --- a/src/resource/texture.c +++ b/src/resource/texture.c @@ -607,7 +607,7 @@ void end_draw_texture(void) { } void fill_viewport(float xoff, float yoff, float ratio, const char *name) { - fill_viewport_p(xoff, yoff, ratio, 1, 0, r_texture_get(name)); + fill_viewport_p(xoff, yoff, ratio, 1, 0, res_texture(name)); } void fill_viewport_p(float xoff, float yoff, float ratio, float aspect, float angle, Texture *tex) { @@ -663,7 +663,7 @@ void fill_viewport_p(float xoff, float yoff, float ratio, float aspect, float an } void fill_screen(const char *name) { - fill_screen_p(r_texture_get(name)); + fill_screen_p(res_texture(name)); } void fill_screen_p(Texture *tex) { @@ -697,5 +697,5 @@ void loop_tex_line_p(cmplx a, cmplx b, float w, float t, Texture *texture) { } void loop_tex_line(cmplx a, cmplx b, float w, float t, const char *texture) { - loop_tex_line_p(a, b, w, t, r_texture_get(texture)); + loop_tex_line_p(a, b, w, t, res_texture(texture)); } diff --git a/src/resource/texture.h b/src/resource/texture.h index 1bf23b2d..14d1dfd5 100644 --- a/src/resource/texture.h +++ b/src/resource/texture.h @@ -36,4 +36,7 @@ extern ResourceHandler texture_res_handler; #define TEX_PATH_PREFIX "res/gfx/" #define TEX_EXTENSION ".tex" +DEFINE_RESOURCE_GETTER(Texture, res_texture, RES_TEXTURE) +DEFINE_OPTIONAL_RESOURCE_GETTER(Texture, res_texture_optional, RES_TEXTURE) + #endif // IGUARD_resource_texture_h diff --git a/src/stage.c b/src/stage.c index e2bfb565..32d347e3 100644 --- a/src/stage.c +++ b/src/stage.c @@ -527,14 +527,14 @@ static void stage_preload(void) { } static void display_stage_title(StageInfo *info) { - stagetext_add(info->title, VIEWPORT_W/2 + I * (VIEWPORT_H/2-40), ALIGN_CENTER, get_font("big"), RGB(1, 1, 1), 50, 85, 35, 35); - stagetext_add(info->subtitle, VIEWPORT_W/2 + I * (VIEWPORT_H/2), ALIGN_CENTER, get_font("standard"), RGB(1, 1, 1), 60, 85, 35, 35); + stagetext_add(info->title, VIEWPORT_W/2 + I * (VIEWPORT_H/2-40), ALIGN_CENTER, res_font("big"), RGB(1, 1, 1), 50, 85, 35, 35); + stagetext_add(info->subtitle, VIEWPORT_W/2 + I * (VIEWPORT_H/2), ALIGN_CENTER, res_font("standard"), RGB(1, 1, 1), 60, 85, 35, 35); } static void display_bgm_title(void) { char txt[strlen(current_bgm.title) + 6]; snprintf(txt, sizeof(txt), "BGM: %s", current_bgm.title); - stagetext_add(txt, VIEWPORT_W-15 + I * (VIEWPORT_H-20), ALIGN_RIGHT, get_font("standard"), RGB(1, 1, 1), 30, 180, 35, 35); + stagetext_add(txt, VIEWPORT_W-15 + I * (VIEWPORT_H-20), ALIGN_RIGHT, res_font("standard"), RGB(1, 1, 1), 30, 180, 35, 35); } void stage_start_bgm(const char *bgm) { diff --git a/src/stagedraw.c b/src/stagedraw.c index ea2dca3d..addc651e 100644 --- a/src/stagedraw.c +++ b/src/stagedraw.c @@ -328,15 +328,15 @@ void stage_draw_pre_init(void) { void stage_draw_init(void) { stagedraw.viewport_pp = get_resource_data(RES_POSTPROCESS, "viewport", RESF_OPTIONAL); - stagedraw.hud_text.shader = r_shader_get("text_hud"); - stagedraw.hud_text.font = get_font("standard"); - stagedraw.shaders.fxaa = r_shader_get("fxaa"); - stagedraw.shaders.copy_depth = r_shader_get("copy_depth"); + stagedraw.hud_text.shader = res_shader("text_hud"); + stagedraw.hud_text.font = res_font("standard"); + stagedraw.shaders.fxaa = res_shader("fxaa"); + stagedraw.shaders.copy_depth = res_shader("copy_depth"); r_shader_standard(); #ifdef DEBUG - stagedraw.dummy.tex = get_sprite("star")->tex; + stagedraw.dummy.tex = res_sprite("star")->tex; stagedraw.dummy.w = 1; stagedraw.dummy.h = 1; #endif @@ -474,7 +474,7 @@ static void draw_wall_of_text(float f, const char *txt) { memcpy(buf, txt, sizeof(buf) - 4); memcpy(buf + sizeof(buf) - 4, " ~ ", 4); - text_render(buf, get_font("standard"), &spr, &bbox); + text_render(buf, res_font("standard"), &spr, &bbox); // FIXME: The shader currently assumes that the sprite takes up the entire texture. // If it could handle any arbitrary sprite, then text_render wouldn't have to resize @@ -1099,8 +1099,8 @@ static int draw_numeric_callback(Font *font, charcode_t charcode, SpriteInstance } static inline void stage_draw_hud_power_value(float xpos, float ypos) { - Font *fnt_int = get_font("standard"); - Font *fnt_fract = get_font("small"); + Font *fnt_int = res_font("standard"); + Font *fnt_fract = res_font("small"); int pw = global.plr.power + global.plr.power_overflow; @@ -1153,7 +1153,7 @@ static inline void stage_draw_hud_power_value(float xpos, float ypos) { static void stage_draw_hud_score(Alignment a, float xpos, float ypos, char *buf, size_t bufsize, uint32_t score) { format_huge_num(10, score, bufsize, buf); - Font *fnt = get_font("standard"); + Font *fnt = res_font("standard"); bool kern_saved = font_get_kerning_enabled(fnt); font_set_kerning_enabled(fnt, false); @@ -1177,7 +1177,7 @@ static void stage_draw_hud_scores(float ypos_hiscore, float ypos_score, char *bu static void stage_draw_hud_objpool_stats(float x, float y, float width) { ObjectPool **last = &stage_object_pools.first + (sizeof(StageObjectPools)/sizeof(ObjectPool*) - 1); - Font *font = get_font("monotiny"); + Font *font = res_font("monotiny"); ShaderProgram *sh_prev = r_shader_current(); r_shader("text_default"); @@ -1296,7 +1296,7 @@ static void stage_draw_hud_text(struct labels_s* labels) { if(labels->x.next_life > 0) { Color *next_clr = color_mul(RGBA(0.5, 0.3, 0.4, 0.5), &labels->lb_baseclr); format_huge_num(0, global.plr.extralife_threshold - global.plr.points, sizeof(buf), buf); - font = get_font("small"); + font = res_font("small"); text_draw("Next:", &(TextParams) { .pos = { labels->x.next_life + res_text_padding, labels->y.lives + labels->y_ofs.lives_text }, @@ -1322,7 +1322,7 @@ static void stage_draw_hud_text(struct labels_s* labels) { if(labels->x.next_bomb > 0) { Color *next_clr = color_mul(RGBA(0.3, 0.5, 0.3, 0.5), &labels->lb_baseclr); snprintf(buf, sizeof(buf), "%d / %d", global.plr.bomb_fragments, PLR_MAX_BOMB_FRAGMENTS); - font = get_font("small"); + font = res_font("small"); text_draw("Fragments:", &(TextParams) { .pos = { labels->x.next_bomb + res_text_padding, labels->y.bombs + labels->y_ofs.bombs_text }, @@ -1350,7 +1350,7 @@ static void stage_draw_hud_text(struct labels_s* labels) { // Power value stage_draw_hud_power_value(0, labels->y.power); - font = get_font("standard"); + font = res_font("standard"); kern_saved = font_get_kerning_enabled(font); font_set_kerning_enabled(font, false); @@ -1473,7 +1473,7 @@ void stage_draw_bottom_text(void) { } #endif - font = get_font("monosmall"); + font = res_font("monosmall"); text_draw(buf, &(TextParams) { .align = ALIGN_RIGHT, @@ -1655,10 +1655,10 @@ void stage_draw_hud(void) { // Lives and Bombs if(global.stage->type != STAGE_SPELL) { r_mat_mv_push(); - r_mat_mv_translate(0, font_get_descent(get_font("standard")), 0); + r_mat_mv_translate(0, font_get_descent(res_font("standard")), 0); - Sprite *spr_life = get_sprite("hud/heart"); - Sprite *spr_bomb = get_sprite("hud/star"); + Sprite *spr_life = res_sprite("hud/heart"); + Sprite *spr_bomb = res_sprite("hud/star"); float spacing = 1; float pos_lives = HUD_EFFECTIVE_WIDTH - spr_life->w * (PLR_MAX_LIVES - 0.5) - spacing * (PLR_MAX_LIVES - 1); @@ -1716,7 +1716,7 @@ void stage_draw_hud(void) { // Power/Item/Voltage icons r_mat_mv_push(); - r_mat_mv_translate(HUD_X_SECONDARY_OFS_ICON, font_get_descent(get_font("standard")) * 0.5 - 1, 0); + r_mat_mv_translate(HUD_X_SECONDARY_OFS_ICON, font_get_descent(res_font("standard")) * 0.5 - 1, 0); r_draw_sprite(&(SpriteParams) { .pos = { 2, labels.y.power + 2 }, @@ -1771,7 +1771,7 @@ void stage_draw_hud(void) { r_mat_mv_scale(s2, s2, 0); r_color(RGBA_MUL_ALPHA(0.3, 0.6, 0.7, 0.7 * extraspell_alpha)); - Font *font = get_font("big"); + Font *font = res_font("big"); // TODO: replace this with a shader text_draw("Voltage \n Overdrive!", &(TextParams) { .pos = { 1, 1 }, .font_ptr = font, .align = ALIGN_CENTER }); @@ -1820,7 +1820,7 @@ void stage_display_clear_screen(const StageClearBonus *bonus) { "Press Fire to continue", VIEWPORT_W/2 + VIEWPORT_H*0.7*I, ALIGN_CENTER, - get_font("standard"), + res_font("standard"), RGB(1, 0.5, 0), tbl.delay, tbl.lifetime, diff --git a/src/stages/extra.c b/src/stages/extra.c index a5bf4f6c..7030b62f 100644 --- a/src/stages/extra.c +++ b/src/stages/extra.c @@ -279,7 +279,7 @@ static void animate_bg_descent(int anim_time) { static void animate_bg_midboss(int anim_time) { float camera_shift_rate = 0; - stagetext_add("Midboss time!", CMPLX(VIEWPORT_W, VIEWPORT_H)/2, ALIGN_CENTER, get_font("big"), RGB(1,1,1), 0, 120, 30, 30); + stagetext_add("Midboss time!", CMPLX(VIEWPORT_W, VIEWPORT_H)/2, ALIGN_CENTER, res_font("big"), RGB(1,1,1), 0, 120, 30, 30); while(anim_time-- > 0) { fapproach_p(&camera_shift_rate, 1, 1.0f/120.0f); @@ -300,7 +300,7 @@ static void animate_bg_post_midboss(int anim_time) { float center_distance = -2200; float camera_shift_rate = 0; - stagetext_add("Midboss defeated!", CMPLX(VIEWPORT_W, VIEWPORT_H)/2, ALIGN_CENTER, get_font("big"), RGB(1,1,1), 0, 120, 30, 30); + stagetext_add("Midboss defeated!", CMPLX(VIEWPORT_W, VIEWPORT_H)/2, ALIGN_CENTER, res_font("big"), RGB(1,1,1), 0, 120, 30, 30); while(anim_time-- > 0) { fapproach_p(&camera_shift_rate, 1, 1.0f/120.0f); @@ -420,7 +420,7 @@ static void extra_begin(void) { draw_data.codetex_num_segments = strtol(buf, NULL, 0); SDL_RWclose(stream); - Texture *tex_code = r_texture_get("stageex/code"); + Texture *tex_code = res_texture("stageex/code"); uint w, h; r_texture_get_size(tex_code, 0, &w, &h); diff --git a/src/stages/stage1/draw.c b/src/stages/stage1/draw.c index d0ad0ea6..f003084a 100644 --- a/src/stages/stage1/draw.c +++ b/src/stages/stage1/draw.c @@ -144,7 +144,7 @@ static void stage1_water_draw(vec3 pos) { int pp_quality = config_get_int(CONFIG_POSTPROCESS); - ShaderProgram *water_shader = r_shader_get("stage1_water"); + ShaderProgram *water_shader = res_shader("stage1_water"); r_uniform_float(r_shader_uniform(water_shader, "time"), 0.5 * global.frames / (float)FPS); r_uniform_vec4_rgba(r_shader_uniform(water_shader, "water_color"), &water_color); r_uniform_float(r_shader_uniform(water_shader, "wave_offset"), stage_3d_context.cx[1] / 2400.0); @@ -270,7 +270,7 @@ static void stage1_waterplants_draw(vec3 pos) { Sprite spr = { 0 }; spr.w = spr.h = 1; - spr.tex = r_texture_get("stage1/waterplants"); + spr.tex = res_texture("stage1/waterplants"); spr.tex_area.w = 0.5f; spr.tex_area.h = 1.0f; spr.tex_area.x = 0.5f * tile; diff --git a/src/stages/stage1/spells/snow_halation.c b/src/stages/stage1/spells/snow_halation.c index e50230ae..fc39fd57 100644 --- a/src/stages/stage1/spells/snow_halation.c +++ b/src/stages/stage1/spells/snow_halation.c @@ -200,7 +200,7 @@ DEFINE_EXTERN_TASK(stage1_spell_snow_halation) { }; if(cheater < ARRAY_SIZE(text)) { - stagetext_add(text[cheater], global.boss->pos+100*I, ALIGN_CENTER, get_font("standard"), RGB(1,1,1), 0, 100, 10, 20); + stagetext_add(text[cheater], global.boss->pos+100*I, ALIGN_CENTER, res_font("standard"), RGB(1,1,1), 0, 100, 10, 20); if(++cheater == ARRAY_SIZE(text)) { INVOKE_SUBTASK(halation_chase, ENT_BOX(boss)); diff --git a/src/stagetext.c b/src/stagetext.c index a748b611..6a960067 100644 --- a/src/stagetext.c +++ b/src/stagetext.c @@ -102,9 +102,9 @@ static void stagetext_draw_single(StageText *txt) { params.font_ptr = txt->font; params.align = txt->align; params.blend = BLEND_PREMUL_ALPHA; - params.shader_ptr = r_shader_get("text_stagetext"); + params.shader_ptr = res_shader("text_stagetext"); params.shader_params = &(ShaderCustomParams){{ 1 - f }}, - params.aux_textures[0] = r_texture_get("titletransition"); + params.aux_textures[0] = res_texture("titletransition"); params.pos.x = creal(txt->pos) + ofs_x; params.pos.y = cimag(txt->pos) + ofs_y; params.color = &txt->color; @@ -146,7 +146,7 @@ void stagetext_begin_table(StageTextTable *tbl, const char *title, const Color * tbl->fadeouttime = fadeouttime; tbl->delay = delay; - StageText *txt = stagetext_add(title, tbl->pos, ALIGN_CENTER, get_font("big"), titleclr, tbl->delay, lifetime, fadeintime, fadeouttime); + StageText *txt = stagetext_add(title, tbl->pos, ALIGN_CENTER, res_font("big"), titleclr, tbl->delay, lifetime, fadeintime, fadeouttime); stagetext_table_push(tbl, txt, true); } @@ -161,19 +161,19 @@ void stagetext_end_table(StageTextTable *tbl) { } static void stagetext_table_add_label(StageTextTable *tbl, const char *title) { - StageText *txt = stagetext_add(title, tbl->pos - tbl->width * 0.5, ALIGN_LEFT, get_font("standard"), &tbl->clr, tbl->delay, tbl->lifetime, tbl->fadeintime, tbl->fadeouttime); + StageText *txt = stagetext_add(title, tbl->pos - tbl->width * 0.5, ALIGN_LEFT, res_font("standard"), &tbl->clr, tbl->delay, tbl->lifetime, tbl->fadeintime, tbl->fadeouttime); stagetext_table_push(tbl, txt, false); } void stagetext_table_add(StageTextTable *tbl, const char *title, const char *val) { stagetext_table_add_label(tbl, title); - StageText *txt = stagetext_add(val, tbl->pos + tbl->width * 0.5, ALIGN_RIGHT, get_font("standard"), &tbl->clr, tbl->delay, tbl->lifetime, tbl->fadeintime, tbl->fadeouttime); + StageText *txt = stagetext_add(val, tbl->pos + tbl->width * 0.5, ALIGN_RIGHT, res_font("standard"), &tbl->clr, tbl->delay, tbl->lifetime, tbl->fadeintime, tbl->fadeouttime); stagetext_table_push(tbl, txt, true); } void stagetext_table_add_numeric(StageTextTable *tbl, const char *title, int n) { stagetext_table_add_label(tbl, title); - StageText *txt = stagetext_add_numeric(n, tbl->pos + tbl->width * 0.5, ALIGN_RIGHT, get_font("standard"), &tbl->clr, tbl->delay, tbl->lifetime, tbl->fadeintime, tbl->fadeouttime); + StageText *txt = stagetext_add_numeric(n, tbl->pos + tbl->width * 0.5, ALIGN_RIGHT, res_font("standard"), &tbl->clr, tbl->delay, tbl->lifetime, tbl->fadeintime, tbl->fadeouttime); stagetext_table_push(tbl, txt, true); } @@ -184,7 +184,7 @@ void stagetext_table_add_numeric_nonzero(StageTextTable *tbl, const char *title, } void stagetext_table_add_separator(StageTextTable *tbl) { - tbl->pos += I * 0.5 * font_get_lineskip(get_font("standard")); + tbl->pos += I * 0.5 * font_get_lineskip(res_font("standard")); } diff --git a/src/util/graphics.c b/src/util/graphics.c index dfde5cd2..b4368b7d 100644 --- a/src/util/graphics.c +++ b/src/util/graphics.c @@ -59,7 +59,7 @@ void draw_fragments(const DrawFragmentsParams *params) { static Color prev_back_clr; ShaderProgram *prog_saved = r_shader_current(); - ShaderProgram *prog_wanted = r_shader_get("sprite_circleclipped_indicator"); + ShaderProgram *prog_wanted = res_shader("sprite_circleclipped_indicator"); if(memcmp(&prev_back_clr, back_clr, sizeof(prev_back_clr))) { // HACK/FIXME: we can't pass more than 4 floats via custom params, and we don't have auto-flush based on uniforms state, so...