/**************************************************************************** * Copyright (C) 2015-2016 by the SotS Team * * * * This file is part of Sovereign of the Skies. * * * * Sovereign of the Skies is free software: you can redistribute it * * and/or modify it * * under the terms of the GNU Lesser General Public License as published * * by the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version provided you include a copy of the * * licence and this header. * * * * Sovereign of the Skies 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 Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with Sovereign of the Skies. * * If not, see . * ****************************************************************************/ /** * @file game_engine.h * @author Sturmvogel * @date 15 dec 2016 * @brief Game Environment * * This header file contains methods to interact with the game environment, * misc. functions i.e. access to flags / variables and (encrypted) pokémon * data. */ #ifndef GAME_ENGINE_H #define GAME_ENGINE_H /* === INCLUDE === */ #include /* === EXTERN METHODS === */ /** * @brief get pointer of var * @param index variable to access * @return pointer to given variable storage */ extern u16 *var_access(u32 index); /** * @brief checks if flag is set * @param flag index of flag to check * @return flag status (bool) */ extern u8 flag_check(u32 flag); /** * @brief clears a flag * @param flag flag index to clear */ extern void flag_clear(u16 flag); /** * @brief gets attribute of pokémon * @param poke_address address to pokémon structure * @param request request from the attribute request table * @param destination destination to write to (if not returned directly) * @return requested value (if not too big) */ extern u32 pokemon_get_attribute(struct pokemon* poke_address, u8 request, void* destination); /** * @brief sets attribute of pokémon * @param poke_address address to pokémon structure * @param request request from the attribute request table * @param new_value pointer to new value */ void pokemon_set_attribute(struct pokemon* poke_address, u8 request, void* new_value); #endif /* GAME_ENGINE_H */