Added sounds and music...
This commit is contained in:
parent
16df4f0a2d
commit
47e4946d45
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@ source/*.o
|
||||
source/*.ali
|
||||
xhads
|
||||
sprite/*
|
||||
song/*
|
||||
|
@ -133,9 +133,9 @@ package body core is
|
||||
function load_sprite (file_path : in string; frames, states : in integer) return sprite is
|
||||
this : sprite;
|
||||
begin
|
||||
this.index := import_sprite (c_string (file_path));
|
||||
this.width := sprite_width (this.index) / states;
|
||||
this.height := sprite_height (this.index) / frames;
|
||||
this.index := import_texture (c_string (file_path));
|
||||
this.width := sprite_width (this.index) / states;
|
||||
this.height := sprite_height (this.index) / frames;
|
||||
this.frames := frames;
|
||||
this.states := states;
|
||||
--
|
||||
|
@ -88,9 +88,15 @@ package core is
|
||||
procedure render_string (text : in string; x, y, colour, choose : in integer) with import => true, convention => c;
|
||||
procedure render_vector (x1, y1, x2, y2 : in integer) with import => true, convention => c;
|
||||
|
||||
function import_sprite (file_path : in string) return integer with import => true, convention => c;
|
||||
function sprite_width (index : in integer) return integer with import => true, convention => c;
|
||||
function sprite_height (index : in integer) return integer with import => true, convention => c;
|
||||
function import_texture (file_path : in string) return integer with import => true, convention => c;
|
||||
function import_sound (file_path : in string) return integer with import => true, convention => c;
|
||||
|
||||
function sprite_width (index : in integer) return integer with import => true, convention => c;
|
||||
function sprite_height (index : in integer) return integer with import => true, convention => c;
|
||||
|
||||
procedure play_sound (index : in integer) with import => true, convention => c;
|
||||
procedure stop_sound (index : in integer) with import => true, convention => c;
|
||||
procedure loop_sound (index : in integer) with import => true, convention => c;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -15,6 +15,8 @@ procedure main is
|
||||
|
||||
player : chad.information := chad.trait (chad.ognjen);
|
||||
|
||||
dummy : integer;
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
begin
|
||||
@ -28,6 +30,11 @@ begin
|
||||
|
||||
core.configure;
|
||||
ui.configure;
|
||||
|
||||
dummy := core.import_sound (core.c_string ("./song/main_menu.wav"));
|
||||
|
||||
core.play_sound (dummy);
|
||||
|
||||
attribute.configure;
|
||||
skill.configure;
|
||||
resource.configure;
|
||||
|
@ -17,8 +17,11 @@ enum {
|
||||
signal_left_control, signal_count
|
||||
};
|
||||
|
||||
static Texture2D * render_texture;
|
||||
static int render_texture_count = 0;
|
||||
static int texture_count = 0;
|
||||
static int sound_count = 0;
|
||||
|
||||
static Texture2D * texture_array;
|
||||
static Sound * sound_array;
|
||||
|
||||
static Font font = { 0 };
|
||||
static Font mono = { 0 };
|
||||
@ -34,7 +37,10 @@ static void no_logging (int msgType, const char * text, va_list args) {
|
||||
}
|
||||
|
||||
static void render_clean_up (void) {
|
||||
free (render_texture);
|
||||
free (texture_array);
|
||||
free (sound_array);
|
||||
|
||||
CloseAudioDevice ();
|
||||
|
||||
CloseWindow ();
|
||||
}
|
||||
@ -59,10 +65,16 @@ extern void render_vector (int x1, int y1, int x2, int y2);
|
||||
extern void engine_configure (void);
|
||||
extern void engine_synchronize (void);
|
||||
|
||||
extern int import_sprite (char * path);
|
||||
extern int import_texture (char * path);
|
||||
extern int import_sound (char * path);
|
||||
|
||||
extern int sprite_width (int index);
|
||||
extern int sprite_height (int index);
|
||||
|
||||
extern void play_sound (int index);
|
||||
extern void stop_sound (int index);
|
||||
extern void loop_sound (int index);
|
||||
|
||||
int cursor_x = 0;
|
||||
int cursor_y = 0;
|
||||
int cursor_mode = 0;
|
||||
@ -88,7 +100,7 @@ void render_sprite (int sprite, int x, int y, int u, int v, int width, int heigh
|
||||
destination.width = (width < 0) ? -width : width;
|
||||
destination.height = (height < 0) ? -height : height;
|
||||
|
||||
DrawTexturePro (render_texture [sprite], source, destination, dump, 0.0, tint);
|
||||
DrawTexturePro (texture_array [sprite], source, destination, dump, 0.0, tint);
|
||||
}
|
||||
|
||||
void render_string (char * string, int x, int y, int colour, int choose) {
|
||||
@ -116,6 +128,8 @@ void engine_configure (void) {
|
||||
InitWindow (1800, 900, "Chads of Might & Magic");
|
||||
SetTargetFPS (60);
|
||||
|
||||
InitAudioDevice ();
|
||||
|
||||
font = LoadFont ("./sprite/font/gothic.ttf");
|
||||
mono = LoadFont ("./sprite/font/mono.ttf");
|
||||
|
||||
@ -181,28 +195,50 @@ void engine_synchronize (void) {
|
||||
ClearBackground (background);
|
||||
}
|
||||
|
||||
int import_sprite (char * path) {
|
||||
++render_texture_count;
|
||||
int import_texture (char * path) {
|
||||
++texture_count;
|
||||
|
||||
render_texture = realloc (render_texture, (unsigned long int) render_texture_count * sizeof (* render_texture));
|
||||
texture_array = realloc (texture_array, (unsigned long int) texture_count * sizeof (* texture_array));
|
||||
|
||||
render_texture [render_texture_count - 1] = LoadTexture (path);
|
||||
texture_array [texture_count - 1] = LoadTexture (path);
|
||||
|
||||
if ((render_texture [render_texture_count - 1].width == 0) || (render_texture [render_texture_count - 1].height == 0)) {
|
||||
if ((texture_array [texture_count - 1].width == 0) || (texture_array [texture_count - 1].height == 0)) {
|
||||
printf ("\033[1;31m%3i : '%60s' := %3i, %3i;\033[0m\n",
|
||||
render_texture_count - 1,
|
||||
texture_count - 1,
|
||||
path,
|
||||
render_texture [render_texture_count - 1].width,
|
||||
render_texture [render_texture_count - 1].height);
|
||||
texture_array [texture_count - 1].width,
|
||||
texture_array [texture_count - 1].height);
|
||||
}
|
||||
|
||||
return (render_texture_count - 1);
|
||||
return (texture_count - 1);
|
||||
}
|
||||
|
||||
int import_sound (char * path) {
|
||||
++sound_count;
|
||||
|
||||
sound_array = realloc (sound_array, (unsigned long int) sound_count * sizeof (* sound_array));
|
||||
|
||||
sound_array [sound_count - 1] = LoadSound (path);
|
||||
|
||||
return (sound_count - 1);
|
||||
}
|
||||
|
||||
int sprite_width (int index) {
|
||||
return (render_texture [index].width);
|
||||
return (texture_array [index].width);
|
||||
}
|
||||
|
||||
int sprite_height (int index) {
|
||||
return (render_texture [index].height);
|
||||
return (texture_array [index].height);
|
||||
}
|
||||
|
||||
void play_sound (int index) {
|
||||
PlaySound (sound_array [index]);
|
||||
}
|
||||
|
||||
void stop_sound (int index) {
|
||||
StopSound (sound_array [index]);
|
||||
}
|
||||
|
||||
void loop_sound (int index) {
|
||||
PlaySound (sound_array [index]);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user