1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /****************************************************************************
- * 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 <http://www.gnu.org/licenses/>. *
- ****************************************************************************/
-
- /**
- * @file camera_move.c
- * @author Sturmvogel
- * @date 15 dec 2016
- * @brief Scene to update the camera
- *
- * This provides implementations to move the game camera
- */
-
- /* === INCLUDES === */
-
- #include <game_engine.h>
- #include "camera_move.h"
- #include <callback.h>
- #include <fade.h>
- #include <config/core.h>
- #include <lcd.h>
-
- /* === PROTOTYPES === */
-
- /**
- * @brief special to handle the camera update scene
- */
- void cam_cb_move_camera();
-
- /**
- * @brief vblank screen update method for the camera scene
- */
- void cam_update_screen();
-
- /* === STRUCTURES === */
-
- struct cam_point {
- u16 x;
- u16 y;
- };
-
- /* === STATIC STRUCTURES === */
-
- struct cam_point** sav_data_map = (struct cam_point**)(0x03005008);
-
- /* === IMPLEMENTATIONS === */
-
- void cam_update_screen()
- {
- fade_update();
- task_exec();
- objc_exec();
- obj_sync();
- gpu_pal_upload();
- obj_gpu_sprites_upload();
- }
-
- void cam_sp_move_camera()
- {
- set_callback2(cam_cb_move_camera);
- fade_screen(0xFFFFFFFF, 0, 0, 0x10, 0x0000);
- vblank_handler_set(cam_update_screen);
- }
-
- void cam_cb_move_camera()
- {
- if((fade_controller.mix_color & 0x8000) == 0)
- {
- u16 camera_x = *var_access(CAMERA_VAR_X);
- u16 camera_y = *var_access(CAMERA_VAR_Y);
-
- (*sav_data_map)->x = camera_x;
- (*sav_data_map)->y = camera_y;
- //camera_move_and_redraw(camera_x, camera_y);
- set_callback2(callback_overworld);
- }
- }
|