/* 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 "main.h" #include "maps.h" // generated #include "cloud.h" #include "entities.h" #include "et_cloud.h" #include "et_player.h" void draw_cloud() { it_k = *it_x & 1; if (*it_param) it_k ^= 1; put_sprite4(cloud[it_k], *it_x, *it_y, 3, *it_param & 128); erase_sprite(*it_ox, *it_oy, 3); } void update_cloud() { if (*it_param) { if (is_map_blocked(*it_x + 11, *it_y + 22) || is_map_blocked(*it_x + 11, *it_y + 7) || is_map_blocked(*it_x + 11, *it_y + 2) || *it_x > TW * TMW - 8 - 4) goto cloud_change_dir; else *it_x += 1; } else { if (is_map_blocked(*it_x - 4, *it_y + 22) || is_map_blocked(*it_x - 4, *it_y + 7) || is_map_blocked(*it_x - 4, *it_y + 2) || *it_x < 4) goto cloud_change_dir; else *it_x -= 1; } if (!magic && lives && abs_sub(px, *it_x) < 64 && py != *it_y && ( (*it_param && px > *it_x) || (*it_param == 0 && px < *it_x) )) { if (py > *it_y && !is_map_blocked(*it_x + 3, *it_y + 23)) *it_y += 1; if (py < *it_y && !is_map_blocked(*it_x + 3, *it_y + 1)) *it_y -= 1; } if (check_for_player(24)) { player_hit(2); cloud_change_dir: *it_param ^= 128; } }