mirror of
https://github.com/risingPhil/PokeMe64.git
synced 2026-03-21 18:04:15 -05:00
It doesn't look like much, but it's functional ;-) It can inject distribution pokémon into gen 1 and gen 2 original cartridges and inject the GS ball in Pokémon Crystal. That's it. But that was the minimal feature set I had in mind for the project. In the Readme.md you can find the ideas I have for expanding the project. But the first priority is the UI, because it really looks bad right now. (as I was mostly focused on building blocks and transfer pak functionality. Not on making it looks good)
55 lines
1.2 KiB
C++
Executable File
55 lines
1.2 KiB
C++
Executable File
#ifndef _ISCENE_H
|
|
#define _ISCENE_H
|
|
|
|
#include <libdragon.h>
|
|
|
|
class RDPQGraphics;
|
|
class SceneManager;
|
|
class AnimationManager;
|
|
class FontManager;
|
|
class TransferPakManager;
|
|
|
|
typedef struct Rectangle Rectangle;
|
|
|
|
enum class SceneType
|
|
{
|
|
NONE,
|
|
INIT_TRANSFERPAK,
|
|
MENU,
|
|
DISTRIBUTION_POKEMON_LIST,
|
|
TEST
|
|
};
|
|
|
|
typedef struct SceneDependencies
|
|
{
|
|
RDPQGraphics& gfx;
|
|
AnimationManager& animationManager;
|
|
FontManager& fontManager;
|
|
TransferPakManager& tpakManager;
|
|
SceneManager& sceneManager;
|
|
uint8_t generation;
|
|
uint8_t specificGenVersion;
|
|
} SceneDependencies;
|
|
|
|
class IScene
|
|
{
|
|
public:
|
|
virtual ~IScene();
|
|
|
|
virtual void init() = 0;
|
|
virtual void destroy() = 0;
|
|
|
|
/**
|
|
* @brief This function should implement the procedure of obtaining the relevant user input
|
|
* and directing it as necessary, but it should not implement how to handle it. For the latter you should implement handleUserInput instead.
|
|
*/
|
|
virtual void processUserInput() = 0;
|
|
|
|
virtual bool handleUserInput(joypad_port_t port, const joypad_inputs_t& inputs) = 0;
|
|
|
|
virtual void render(RDPQGraphics& gfx, const Rectangle& sceneBounds) = 0;
|
|
protected:
|
|
private:
|
|
};
|
|
|
|
#endif |