/* Kitsune's Curse Copyright (C) 2020-2023 Juan J. Martinez This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "splib.h" #include "plw.h" #include "sound.h" #include "main.h" #include "maps.h" // generated #include "oni.h" #include "entities.h" #include "et_oni.h" #include "et_player.h" void draw_oni() { put_sprite4(oni[*it_frame], *it_x, *it_y, 2, *it_param); erase_sprite(*it_ox, *it_oy, 2); } void update_oni() { if (++(*it_delay) > 32) { if ((*it_param && *it_x < px) || (!*it_param && *it_x > px)) { *it_extra = 4; *it_frame = 1; if (*it_delay == 33) PLW_PlaySoundEffectP(EFX_ONI); if (*it_delay > 48) { *it_delay = 0; *it_frame = 0; *it_extra = 2; } } else --(*it_delay); } if (*it_param) { if (is_map_blocked(*it_x + 11, *it_y + 8) || *it_x > TW * TMW - 8 - 4) goto oni_change_dir; else *it_x += *it_extra; } else { if (is_map_blocked(*it_x - 4, *it_y + 8) || *it_x < 4) goto oni_change_dir; else *it_x -= *it_extra; } if (check_for_player(16)) { player_hit(1); *it_frame = 0; *it_extra = 2; *it_delay = 0; oni_change_dir: *it_param ^= 128; } }