Work in character screen.

Code cleaned.
This commit is contained in:
Saffron
2024-04-19 15:23:21 +02:00
parent 59e4baf7d6
commit 4d4d2c7f3d
24 changed files with 136 additions and 98 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -40,10 +40,12 @@ cd ..\..
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\startscr.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\charcreation.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\intro.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\character.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\createpcscr.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\menu.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\procgen.c
@@ -52,17 +54,17 @@ SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 -
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\encounter.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\font.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\fnt.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\gfx.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\snd.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\rnd.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\system.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\random.c
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% src\main.c startscr.rel charcreation.rel intro.rel menu.rel procgen.rel ingame.rel encounter.rel font.rel gfx.rel snd.rel system.rel random.rel src\audio\audio.rel
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% src\main.c startscr.rel intro.rel character.rel createpcscr.rel menu.rel procgen.rel ingame.rel encounter.rel fnt.rel gfx.rel snd.rel rnd.rel system.rel src\audio\audio.rel
SET cpath=%~dp0

Binary file not shown.

12
src/character.c Normal file
View File

@@ -0,0 +1,12 @@
//------------------------------------------------------------------
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
//------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "fusion-c/header/msx_fusion.h"
#include "main.h"
#include "character.h"

12
src/character.h Normal file
View File

@@ -0,0 +1,12 @@
//------------------------------------------------------------------
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
//------------------------------------------------------------------
#ifndef CHARACTER_H
#define CHARACTER_H
#include "main.h"
#endif

View File

@@ -9,10 +9,10 @@
#include "fusion-c/header/msx_fusion.h"
#include "main.h"
#include "font.h"
#include "fnt.h"
#include "gfx.h"
#include "ingame.h" // #WIP needed for draw portraits defines
#include "charcreation.h"
#include "createpcscr.h"
//------------------------------------------------------------------
// Functions.

View File

@@ -2,8 +2,8 @@
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
//------------------------------------------------------------------
#ifndef CHARCREATION_H
#define CHARCREATION_H
#ifndef CREATEPCSCR_H
#define CREATEPCSCR_H
#include "main.h"

View File

@@ -15,6 +15,7 @@
//------------------------------------------------------------------
#define ENCOUNTER_ARRAY_SIZE 256
#define DEFAULT_ENCOUNTER_THRESHOLD 10
//------------------------------------------------------------------
// Variables.
@@ -50,7 +51,7 @@ uchar current_threshold;
void sr_init_encounter(void)
{
current_step = 0;
current_threshold = 10;
current_threshold = DEFAULT_ENCOUNTER_THRESHOLD;
}
void sr_encounter_step(void)

View File

@@ -12,13 +12,13 @@
#include "main.h"
#include "gfx.h"
#include "font.h"
#include "fnt.h"
//------------------------------------------------------------------
// Defines.
//------------------------------------------------------------------
// Font graphics offset.
// Font images offset.
#define FONT_OFFSET_X 0
#define FONT_OFFSET_Y 44
@@ -178,6 +178,8 @@
#define MINUS_Y 172
#define SLASH_X 120
#define SLASH_Y 172
#define COLON_X 88
#define COLON_Y 188
// Textbox.
@@ -287,6 +289,7 @@ void sr_draw_char(uchar character, uint x, uint y, uchar log_op)
case '+': sr_draw_char_src_to_dst(PLUS_X, PLUS_Y, x, y, log_op); break;
case '-': sr_draw_char_src_to_dst(MINUS_X, MINUS_Y, x, y, log_op); break;
case '/': sr_draw_char_src_to_dst(SLASH_X, SLASH_Y, x, y, log_op); break;
case ':': sr_draw_char_src_to_dst(COLON_X, COLON_Y, x, y, log_op); break;
case '<': sr_draw_char_src_to_dst(TXTBOX_UP_L_X, TXTBOX_UP_L_Y, x, y, log_op); break;
case '[': sr_draw_char_src_to_dst(TXTBOX_DWN_L_X, TXTBOX_DWN_L_Y, x, y, log_op); break;
@@ -308,13 +311,13 @@ void sr_draw_text(uchar *text, uint x, uint y, uchar text_color, uchar border_co
if (border_color != 0)
{
// Color border.
LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, border_color, LOGICAL_IMP);
LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, border_color, LOGICAL_IMP);
sr_draw_char(*text, x, y, LOGICAL_TIMP);
// Only for color text.
if (text_color != 0)
{
LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, 15-text_color, LOGICAL_IMP);
LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, 15 - text_color, LOGICAL_IMP);
sr_draw_char(*text, x, y, LOGICAL_XOR);
sr_draw_char(*text, x, y, LOGICAL_AND);
}
@@ -327,7 +330,7 @@ void sr_draw_text(uchar *text, uint x, uint y, uchar text_color, uchar border_co
// Only for color text.
if (text_color != 0)
{
LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, 15-text_color, LOGICAL_IMP);
LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, 15 - text_color, LOGICAL_IMP);
sr_draw_char(*text, x, y, LOGICAL_XOR);
sr_draw_char(*text, x, y, LOGICAL_AND);
}

View File

@@ -2,8 +2,8 @@
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
//------------------------------------------------------------------
#ifndef FONT_H
#define FONT_H
#ifndef FNT_H
#define FNT_H
#include "main.h"

View File

@@ -126,7 +126,7 @@ bool sr_load_sf5_image(uchar *file_name, uint initial_y_pos)
while (read != 0)
{
// Set border color based on a 'random' position from the load buffer.
SetColors(15, 0, load_buffer[69]);
SetColors(0, 0, load_buffer[69]);
// Read file and write to load buffer.
read = fcb_read(&file, load_buffer, BUFFER_SIZE);
@@ -174,7 +174,7 @@ bool sr_load_sc8_image(uchar *file_name, uint initial_y_pos)
while (read != 0)
{
// Set border color based on a 'random' position from the load buffer.
SetColors(15, 0, load_buffer[69]);
SetColors(0, 0, load_buffer[69]);
// Read file and write to load buffer.
read = fcb_read(&file, load_buffer, BUFFER_SIZE);
@@ -245,12 +245,12 @@ void sr_page_copy_mode(uint src_x, uint src_y, uint width, uint height, uint dst
fLMMM(&t);
}
void sr_draw_rectangle(uint x, uint y, uint width, uint height, char color)
void sr_draw_rectangle(uint x, uint y, uint width, uint height, uchar color)
{
LMMV(x, y, width, height, color, 0);
}
void sr_draw_pixel(uint x, uint y, char color)
void sr_draw_pixel(uint x, uint y, uchar color)
{
Pset(x, y, color, 0);
}
@@ -260,7 +260,7 @@ void sr_debug_draw_palette(void)
uint x = 0;
uint y = 0;
for (uint i = 0; i < 16; i++)
for (uint i = 0; i < PALETTE_SIZE; i++)
{
LMMV(x, y + sr_get_active_page() * PAGE_WIDTH, 8, 8, i, 0);
y += 9;
@@ -309,11 +309,11 @@ void sr_init_gfx(void)
// Set game palette.
sr_init_palette();
// Set loading text.
sr_set_loading_text();
// Set loading.
sr_set_display_loading();
// Load images.
sr_load_sf5_image("P2.SF5", PAGE_HEIGHT * SPRITES_PAGE); // TODO: Move all the load images to gfx and handle it with an enum and single load function that checks what's already loaded.
// Load images (need to load this here for the font images).
sr_load_sf5_image("P2.SF5", PAGE_HEIGHT * IMAGES_PAGE);
// Reset current screen.
Cls();

View File

@@ -18,6 +18,8 @@
#define HARDWARE_SPRITE_SIZE 8
#define PALETTE_SIZE 16
//------------------------------------------------------------------
// Enums.
//------------------------------------------------------------------

View File

@@ -273,7 +273,7 @@ void sr_draw_fp_view(void)
sr_page_copy_fast(BG_UNDERGROUND_CEILING_X, BG_UNDERGROUND_CEILING_Y,
BG_UNDERGROUND_CEILING_SIZE_X, BG_UNDERGROUND_CEILING_SIZE_Y,
LEVEL_SCREEN_X, 0,
SPRITES_PAGE, BACKBUFFER_PAGE);
IMAGES_PAGE, BACKBUFFER_PAGE);
}
else
{
@@ -281,7 +281,7 @@ void sr_draw_fp_view(void)
sr_page_copy_fast(BG_SURFACE_CEILING_X, BG_SURFACE_CEILING_Y,
BG_SURFACE_CEILING_SIZE_X, BG_SURFACE_CEILING_SIZE_Y,
LEVEL_SCREEN_X, 0,
SPRITES_PAGE, BACKBUFFER_PAGE);
IMAGES_PAGE, BACKBUFFER_PAGE);
}
// Floor.
@@ -291,7 +291,7 @@ void sr_draw_fp_view(void)
sr_page_copy_fast(BG_FLOOR_X, BG_FLOOR_Y,
BG_FLOOR_SIZE_X, BG_FLOOR_SIZE_Y,
BG_FLOOR_DST_X, BG_FLOOR_DST_Y,
SPRITES_PAGE, BACKBUFFER_PAGE);
IMAGES_PAGE, BACKBUFFER_PAGE);
}
else
{
@@ -299,13 +299,13 @@ void sr_draw_fp_view(void)
sr_page_copy_fast(BG_FLOOR_X, BG_FLOOR_Y,
BG_FLOOR_SIZE_X, BG_ALT_FLOOR_SIZE_Y_1,
BG_FLOOR_DST_X, BG_ALT_FLOOR_DST_Y_1,
SPRITES_PAGE, BACKBUFFER_PAGE);
IMAGES_PAGE, BACKBUFFER_PAGE);
// Draw alternate floor.
sr_page_copy_fast(BG_ALT_FLOOR_X, BG_ALT_FLOOR_Y,
BG_FLOOR_SIZE_X, BG_ALT_FLOOR_SIZE_Y_2,
BG_FLOOR_DST_X, BG_ALT_FLOOR_DST_Y_2,
SPRITES_PAGE, BACKBUFFER_PAGE);
IMAGES_PAGE, BACKBUFFER_PAGE);
}
// Front walls.
@@ -554,7 +554,7 @@ void sr_draw_tiles_screen_background(void)
sr_page_copy_fast(232, 188,
24, 24,
x * 24, y * 24,
SPRITES_PAGE, sr_get_active_page());
IMAGES_PAGE, sr_get_active_page());
}
}
@@ -569,37 +569,37 @@ void sr_draw_portraits(void)
sr_set_drawing_state(BEGIN);
// Names.
sr_draw_text("E.Ilba", PORTRAIT_1_NAME_X, PORTRAIT_1_NAME_Y, 15, 0);
sr_draw_text("Lisbeth", PORTRAIT_2_NAME_X, PORTRAIT_2_NAME_Y, 15, 0);
sr_draw_text("Krevar", PORTRAIT_3_NAME_X, PORTRAIT_3_NAME_Y, 15, 0);
sr_draw_text("Echo", PORTRAIT_4_NAME_X, PORTRAIT_4_NAME_Y, 15, 0);
sr_draw_text("E.Ilba", PORTRAIT_1_NAME_X, PORTRAIT_1_NAME_Y, PORTRAIT_NAME_COLOR, 0);
sr_draw_text("Lisbeth", PORTRAIT_2_NAME_X, PORTRAIT_2_NAME_Y, PORTRAIT_NAME_COLOR, 0);
sr_draw_text("Krevar", PORTRAIT_3_NAME_X, PORTRAIT_3_NAME_Y, PORTRAIT_NAME_COLOR, 0);
sr_draw_text("Echo", PORTRAIT_4_NAME_X, PORTRAIT_4_NAME_Y, PORTRAIT_NAME_COLOR, 0);
// Portraits.
sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y,
PORTRAIT_SIZE, PORTRAIT_SIZE,
PORTRAIT_1_X, PORTRAIT_1_Y,
SPRITES_PAGE, sr_get_active_page());
IMAGES_PAGE, sr_get_active_page());
sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE,
PORTRAIT_SIZE, PORTRAIT_SIZE,
PORTRAIT_2_X, PORTRAIT_2_Y,
SPRITES_PAGE, sr_get_active_page());
IMAGES_PAGE, sr_get_active_page());
sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE + PORTRAIT_SIZE,
PORTRAIT_SIZE, PORTRAIT_SIZE,
PORTRAIT_3_X, PORTRAIT_3_Y,
SPRITES_PAGE, sr_get_active_page());
IMAGES_PAGE, sr_get_active_page());
sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE + PORTRAIT_SIZE + PORTRAIT_SIZE,
PORTRAIT_SIZE, PORTRAIT_SIZE,
PORTRAIT_4_X, PORTRAIT_4_Y,
SPRITES_PAGE, sr_get_active_page());
IMAGES_PAGE, sr_get_active_page());
// HP text.
sr_draw_text("10/12", PORTRAIT_1_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_1_NAME_Y + 8, 15, 0);
sr_draw_text("8/8", PORTRAIT_2_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_2_NAME_Y + 8, 15, 0);
sr_draw_text("7/7", PORTRAIT_3_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_3_NAME_Y + 8, 15, 0);
sr_draw_text("9/9", PORTRAIT_4_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_4_NAME_Y + 8, 15, 0);
sr_draw_text("10/12", PORTRAIT_1_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_1_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0);
sr_draw_text("8/8", PORTRAIT_2_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_2_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0);
sr_draw_text("7/7", PORTRAIT_3_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_3_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0);
sr_draw_text("9/9", PORTRAIT_4_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_4_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0);
// // HP bars.
// LMMV(HP_BAR_1_X, HP_BAR_1_Y + get_active_page() * SCREEN_HEIGHT,
@@ -708,10 +708,10 @@ void sr_draw_level_screen(void)
// Compass.
switch(player_dir)
{
case NORTH: sr_draw_text("N", COMPASS_X, COMPASS_Y, 9, 0); break;
case EAST: sr_draw_text("E", COMPASS_X, COMPASS_Y, 9, 0); break;
case SOUTH: sr_draw_text("S", COMPASS_X, COMPASS_Y, 9, 0); break;
case WEST: sr_draw_text("W", COMPASS_X, COMPASS_Y, 9, 0); break;
case NORTH: sr_draw_text("N", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break;
case EAST: sr_draw_text("E", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break;
case SOUTH: sr_draw_text("S", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break;
case WEST: sr_draw_text("W", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break;
}
// #WIP Draw a different floor in odd tiles to create ilusion of movement.
@@ -720,7 +720,7 @@ void sr_draw_level_screen(void)
floor_tile = !floor_tile;
}
// Dungeon first person view.
// Level first person view.
sr_update_fp_view();
sr_draw_fp_view();
@@ -801,15 +801,14 @@ void sr_update_input_level_mode(void)
}
}
// Actions.
if (TriggerRead(JOY1_BUTTONB) == PRESSED ||
TriggerRead(SPACEBAR) == PRESSED )
{
if (sr_is_generating_dungeon_level() == false)
{
sr_generate_dungeon_level();
}
}
// // Actions.
// if (TriggerRead(JOY1_BUTTONB) == PRESSED || TriggerRead(SPACEBAR) == PRESSED )
// {
// if (sr_is_generating_dungeon_level() == false)
// {
// sr_generate_dungeon_level();
// }
// }
}
void sr_set_ingame_state(void)
@@ -824,8 +823,8 @@ void sr_set_ingame_state(void)
// This may be set by the random generator in the future?
player_dir = NORTH;
// Set loading text.
sr_set_loading_text();
// Set loading.
sr_set_display_loading();
// Load images.
sr_load_sf5_image("P1.SF5", PAGE_HEIGHT * BACKBUFFER_PAGE);
@@ -880,11 +879,5 @@ void sr_update_ingame_state(void)
void sr_finished_ingame_drawing(void)
{
// Copy finished drawing of the first person view from back to front.
sr_page_copy_y_fast(LEVEL_SCREEN_X + LEVEL_SCREEN_SIZE_X, PAGE_HEIGHT, LEVEL_SCREEN_Y, LEVEL_SCREEN_SIZE_Y, 1);
// sr_page_copy_fast(0, 0,
// LEVEL_SCREEN_DX, LEVEL_SCREEN_DY,
// LEVEL_SCREEN_X, LEVEL_SCREEN_Y,
// BACKBUFFER_PAGE, sr_get_active_page());
}

View File

@@ -6,7 +6,7 @@
#define INGAME_H
#include "main.h"
#include "font.h"
#include "fnt.h"
//------------------------------------------------------------------
// Defines.
@@ -15,7 +15,7 @@
#define LEVEL_SIZE 24
#define BACKBUFFER_PAGE 1
#define SPRITES_PAGE 2
#define IMAGES_PAGE 2
#define WALLS_PAGE 3
#define LEVEL_SCREEN_X 8
@@ -61,6 +61,7 @@
#define LEVEL_VIEW_DIST 2
#define COMPASS_COLOR 9
#define COMPASS_X LEVEL_SCREEN_X + (LEVEL_SCREEN_SIZE_X - LEVEL_SCREEN_X) / 2
#define COMPASS_Y 0
@@ -76,6 +77,7 @@
#define PORTRAIT_SRC_Y 0
#define PORTRAIT_SIZE 32
#define PORTRAIT_NAME_COLOR 15
#define PORTRAIT_1_NAME_X 176
#define PORTRAIT_1_NAME_Y FONT_SIZE - 4
#define PORTRAIT_2_NAME_X 176

View File

@@ -9,7 +9,7 @@
#include "fusion-c/header/msx_fusion.h"
#include "main.h"
#include "font.h"
#include "fnt.h"
#include "gfx.h"
#include "intro.h"
@@ -22,7 +22,7 @@ enum Panel
FIRST,
SECOND,
THIRD,
FOURTH,
FOURTH
} current_panel;
//------------------------------------------------------------------
@@ -37,13 +37,27 @@ enum Panel
void sr_draw_intro_text(void)
{
// TODO: Needs to be updated to new drawing system and actually do something.
// #TODO: Needs to be updated to new drawing system and actually do something.
// // Intro text.
// sr_set_drawing_state(Begin);
// // Cls();
// SetColors(0, 0, 14);
/*
Deep in space, far away from the inhabited regions of the galaxy, lies a long-forgotten alien station.
Since its discovery, many expeditions have tried to explore and uncover the secrets of this ancient civilization. Some with noble intentions, others seeking only personal profit.
Neo-Midgard, as its known nowadays, is home to brave (or may I say foolish enough) settlers, scientists, adventurers, and bandits alike.
Your transport ship has just arrived at Neo-Midgard's docking bay.
You come in hopes to start anew, finding some adventures, and who knows, maybe getting rich and famous in the process.
This is your story...
*/
// sr_draw_text("Deep in space far away", 8*4, 8*19, 15, 14);
// sr_draw_text("from the inhabited regions", 8*3, 8*19+9, 15, 14);
// sr_draw_text("of the galaxy lies a long", 8*3, 8*19+9+9, 15, 14);
@@ -52,22 +66,22 @@ void sr_draw_intro_text(void)
// //sr_set_drawing_state(WaitingForVDP);
// sr_wait(1000);
// // Go to dungeon state.
// // Go to ingame state.
// sr_set_game_state(START_SCREEN);
}
void sr_set_intro_state(void)
{
// TODO: Needs to be updated to new drawing system and actually do something.
// #TODO: Needs to be updated to new drawing system and actually do something.
//sr_draw_intro_text();
}
void sr_update_intro_state(void)
{
// TODO: Needs to be updated to new drawing system and actually do something.
// #TODO: Needs to be updated to new drawing system and actually do something.
}
void sr_finished_intro_drawing(void)
{
}
// #TODO: Needs to be updated to new drawing system and actually do something.
}

View File

@@ -8,18 +8,18 @@
#include "fusion-c/header/msx_fusion.h"
#include "charcreation.h"
#include "ingame.h"
#include "createpcscr.h"
#include "encounter.h"
#include "font.h"
#include "fnt.h"
#include "gfx.h"
#include "ingame.h"
#include "intro.h"
#include "menu.h"
#include "procgen.h"
#include "rnd.h"
#include "snd.h"
#include "startscr.h"
#include "system.h"
#include "random.h"
#include "main.h"
//------------------------------------------------------------------
@@ -34,14 +34,12 @@ uchar update_frame_count;
// Functions.
//------------------------------------------------------------------
void sr_set_loading_text(void)
void sr_set_display_loading(void)
{
// Set loading text.
sr_set_active_page(0);
SetColors(0, 14, 0);
Cls();
sr_set_display_page(0);
SetColors(15, 0, 0);
PutText(5, 5, "LOADING...", LOGICAL_TIMP);
}
void sr_set_game_state(uchar new_state)

View File

@@ -25,7 +25,7 @@ enum GameState
// Prototypes.
//------------------------------------------------------------------
void sr_set_loading_text(void);
void sr_set_display_loading(void);
void sr_set_game_state(uchar new_state);
#endif

View File

@@ -10,8 +10,8 @@
#include "main.h"
#include "ingame.h"
#include "rnd.h"
#include "procgen.h"
#include "random.h"
//------------------------------------------------------------------
// Variables.

View File

@@ -2,7 +2,7 @@
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
//------------------------------------------------------------------
#include "random.h"
#include "rnd.h"
//------------------------------------------------------------------
// Variables.

View File

@@ -2,8 +2,8 @@
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
//------------------------------------------------------------------
#ifndef RANDOM_H
#define RANDOM_H
#ifndef RND_H
#define RND_H
#include "main.h"

View File

@@ -9,7 +9,7 @@
#include "fusion-c/header/msx_fusion.h"
#include "main.h"
#include "font.h"
#include "fnt.h"
#include "gfx.h"
#include "startscr.h"
@@ -19,8 +19,8 @@
void sr_draw_startscr_intro_text(void)
{
// Set loading text.
sr_set_loading_text();
// Set loading.
sr_set_display_loading();
// Load the title screen.
sr_load_sf5_image("STRTSCR.SF5", PAGE_HEIGHT * TITLE_PAGE);
@@ -35,7 +35,7 @@ void sr_draw_startscr_intro_text(void)
SetColors(0, 0, 14);
sr_draw_text("PRESS SPACE KEY", FONT_SIZE * 8, FONT_SIZE * 16, 15, 14);
sr_draw_text("@ 2023 SAFFRON SOFT", FONT_SIZE * 6, FONT_SIZE * 22, 15, 14);
sr_draw_text("@ 1986 SAFFRON SOFT", FONT_SIZE * 6, FONT_SIZE * 22, 15, 14);
// Finish drawing.
sr_set_drawing_state(END);
@@ -48,13 +48,12 @@ void sr_set_startscr_state(void)
void sr_update_startscr_state(void)
{
// TODO:
// #TODO
// MENU
// Go to load game -> ingame.
// Go to new game -> intro.
if (TriggerRead(JOY1_BUTTONA) == PRESSED ||
TriggerRead(SPACEBAR) == PRESSED )
if (TriggerRead(JOY1_BUTTONA) == PRESSED || TriggerRead(SPACEBAR) == PRESSED )
{
sr_set_game_state(IN_GAME);
}

View File

@@ -11,7 +11,7 @@
// Defines.
//------------------------------------------------------------------
#define TITLE_PAGE 1
#define TITLE_PAGE 0
//------------------------------------------------------------------
// Prototypes.