Add set_sprite_clip_def for pre-resolved clip switches.

This commit is contained in:
2026-08-14 23:07:58 -07:00
parent 9df98ef73d
commit a24f547709
2 changed files with 42 additions and 0 deletions
+11
View File
@@ -183,6 +183,17 @@ set_sprite_clip :: proc(sprite: ^Sprite, clip: string) {
def, ok := character_clip(sprite.data, clip)
if !ok do return
set_sprite_clip_def(sprite, clip, def)
}
// Applies a pre-resolved clip without looking up the character clip map.
// Use when callers already hold Clip_Def (e.g. thrashing between known clips).
set_sprite_clip_def :: proc(sprite: ^Sprite, clip: string, def: Clip_Def) {
if sprite == nil do return
if len(def.frames) == 0 do return
if sprite.clip == clip && sprite.has_clip do return
sprite.clip = clip
sprite.clip_def = def
sprite.has_clip = true