/* 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 "platform.h" #include "entities.h" #include "et_player.h" #include "et_platform.h" void draw_platform() { put_sprite4(platform[*it_frame], *it_x, *it_y, 1, 0); put_sprite4(platform[*it_frame], *it_x + 8, *it_y, 1, 0); erase_sprite(*it_ox, *it_oy, 1); erase_sprite(*it_ox + 8, *it_oy, 1); } void update_platform() { // check limit and change direction if ((*it_delay)++ >= *it_extra) { *it_delay = 1; *it_param ^= 128; } // track player if on the platform if (check_for_point(sp_it, px + 1, py + 24, 16, 8) || check_for_point(sp_it, px + 6, py + 24, 16, 8)) { py = *it_y - 24; if (*it_delay & 1) return; if (*it_param) { if (!is_map_blocked(px + 8, py + (player_h ? 6 : 0)) && !is_map_blocked(px + 8, py + 23)) px += 2; } else { if (!is_map_blocked(px - 1, py + (player_h ? 6 : 0)) && !is_map_blocked(px - 1, py + 23)) px -= 2; } } else if (*it_delay & 1) return; if (*it_param) *it_x += 2; else *it_x -= 2; }