// IAEngine: 2D Game Engine by IA // Copyright (C) 2025 IASoft (PVT) LTD (oss@iasoft.dev) // // 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 namespace ia::iae::rpg { GameRequestedConfig *RequestEngineConfig() { STATIC GameRequestedConfig EngineConfig{ .DesignWidth = 800, .DesignHeight = 600, .WindowWidth = 800, .WindowHeight = 600, }; return &EngineConfig; } VOID OnInitialize() { Engine::Input_SetupOnScreenGamePad(); Engine::SetRenderState_YSortingEnabled(true); Engine::Input_SetupKeyboardGamePad(InputKey::K_LEFT, InputKey::K_RIGHT, InputKey::K_DOWN, InputKey::K_UP, InputKey::A, InputKey::B, InputKey::C, InputKey::D); } VOID OnTerminate() { } VOID OnDebugDraw() { } VOID OnFixedUpdate() { } VOID OnUpdate(IN FLOAT32 deltaTime) { } VOID OnResize(IN INT32 newWidth, IN INT32 newHeight) { } } // namespace ia::iae::rpg C_DECL(GameRequestedConfig *Game_GetConfigRequest()) { return rpg::RequestEngineConfig(); } C_DECL(VOID Game_OnInitialize()) { rpg::OnInitialize(); } C_DECL(VOID Game_OnTerminate()) { rpg::OnTerminate(); } C_DECL(VOID Game_OnDebugDraw()) { rpg::OnDebugDraw(); } C_DECL(VOID Game_OnFixedUpdate()) { rpg::OnFixedUpdate(); } C_DECL(VOID Game_OnUpdate(IN FLOAT32 deltaTime)) { rpg::OnUpdate(deltaTime); } C_DECL(VOID Game_OnResize(IN INT32 newWidth, IN INT32 newHeight)) { rpg::OnResize(newWidth, newHeight); } IAENGINE_RUN("RPG Sample", "com.iasoft.iae.rpgsample", "IASoft (PVT) LTD", "IASoft (PVT) LTD", 1, 0, 0);