Легче простого. Можно сделать банк с форматом 00,01,00,01,01,00 и т.д. Где 1 это наклз, а 0 - соник. Каждый байт будет соответствовать своей зоне и при загрузке зоны вставить код со считыванием значения из нашего банка и указыванием 3йки в адрес персонажа, при получении в банке 1цы.
Должно выйти примерно так:
move.b (zone_number).w, d0
lea bank, a0
lea (a0,d0.w),a0
cmpi.b #0,(a0)
beq.s +
move.b #3,(player_type).w
bsr.s _end
+:
move.b #0,(player_type).w
bsr.s _end
bank:
dc.b 0,1,0,1,0,1,0,1
_end:
его вставить где-нибудь в загрузке левла и всё тут