分かるよ。
Cだけど俺も同じ経験をしたことがある。

HSPにもenumはあると思うけど
#enum CHR_MYPLAYER_STOP = 0
#enum CHR_MYPLAYER_WALK
#enum CHR_MYPLAYER_ATTACK
...
と定義して、ファイル名を MYPLAYER_STOP.png のように
状態で命名するようにすれば管理しやすいし、
内部番号と素材が噛み合わなくなる事態も回避出来る。

例えば CHR_MYPLAYER_STOP と CHR_MYPLAYER_WALK の間に CHR_MYPLAYER_SLEEP を挿入すると、
プリプロセッサが自動的に CHR_MYPLAYER_WALK=2 となるよう変更してくれるので
CHR_MYPLAYER_WALK を実際に使っている箇所は変更しなくていい。

更に一歩進みたければ、ファイル名から内部の管理番号を得られるようにしたり
内部の管理番号に一切ノータッチで管理出来るようにしたりすればいいさ。
HSPで出来るかはわからんが。