Kopiuj
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
#include <time.h>
#include "stdh.h"
#include "resource.h"
#include "keygen.h"
#include "cars.h"
#include "objects.h"
#include "player.h"
#include "drivers.h"
#include "GCar.h"
#include "GView.h"
#include "GObject.h"
#include "GMap.h"
#include "GRun.h"
#include "GMap.h"
#include "MMain.h"
#include "MTrain.h"
#include "HDShow.h"
#include <iostream>
using namespace std;
void timer_procedure()
{
if (tmr > 0) tmr--;
}
END_OF_FUNCTION(timer_procedure);
void InitData();
void SaveData();
void AppInit(int card);
void AppRun();
void AppClose();
void LoadCars();
void LoadDrivers();
void LoadADrivers();
void LoadCup();
void SaveDrivers();
void SetupDialog();
void Intro();
int main(int argc, char *argv[])
{
allegro_init();
goHomeRacer();
cout << "Allegro inited" << endl;
if (install_sound(DIGI_AUTODETECT, MIDI_NONE, NULL) != 0) {
allegro_message("Error initializing sound system: %s\n", allegro_error);
return 1;
}
set_volume(255, 255);
SAMPLE *sound = load_sample("/home/wrzosu2777/Desktop/Nowa gra/racer-1.1.64.tar/racer-1.1.64/polska.wav");
if (!sound) {
allegro_message("Error: Unable to load sound file: %s\n", argv[1]);
return 1;
}
play_sample(sound, 255, 128, 1000, 0);
destroy_sample(sound);
InitData();
cout << "Data inited" << endl;
set_window_title("Racer");
cout << "Loading obects" << endl;
LoadOparams();
cout << "Loading cars" << endl;
LoadCars();
cout << "Data loaded" << endl;
if (argc == 3 && !strcmp(argv[1], "-GENERATE")) {
GRun trun;
trun.GenerateMap(argv[2]);
set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
cout << "Generovani mapy probehlo uspesne";
exit(0);
}
if ((argc == 2 && (!strcmp(argv[1], "-W") || !strcmp(argv[1], "-w"))) || !DF_FULLSCREEN)
AppInit(GFX_AUTODETECT_WINDOWED);
else
AppInit(GFX_AUTODETECT);
cout << "Window created" << endl;
cout << "Running game" << endl;
AppRun();
cout << "Closing game" << endl;
AppClose();
SaveData();
cout << "Good bye :-)" << endl;
return 0;
}
END_OF_MAIN();
const char gfxdirect[7][20] = {
"gfx/cars/", "gfx/gw/","gfx/menu/",
"gfx/", "gfx/other/", "", "maps/"
};
void upcaser (char *c)
{
while (*c != '\0') {
if (*c <= 'z' && *c >= 'a') *c += 'A' - 'a';
c++;
}
}
BITMAP *fload_bitmap(const char *c)
{
char tc[50];
char tmpc[50];
string path;
strcpy(tmpc, c);
upcaser(tmpc);
BITMAP *tmp = NULL;
if (tmp == NULL) {
for (int i = 0; i < 7; i++) {
sprintf(tc, "%s%s", gfxdirect[i], tmpc);
path = locateFile(tc);
tmp = hload_bitmap(path.c_str());
if (tmp != NULL) break;
}
}
if (tmp == NULL) {
for (int i = 0; i < 7; i++) {
sprintf(tc, "%s%s.BMP", gfxdirect[i], tmpc);
path = locateFile(tc);
tmp = hload_bitmap(path.c_str());
if (tmp != NULL) break;
}
}
if (tmp == NULL)
printf("Bitmapa %s - nebyla nikde nalezena\n", c);
return tmp;
}
void LogMessage(const char *s)
{
}
BITMAP *rload_bmp(const char *c)
{
return NULL;
}
void rload_snd(const char *c, HDSoundBuffer *buffer)
{
}
void TTGetDimension(const char *c, HFONT font2, int &width, int &height)
{
width = text_length(font, c);
height = text_height(font);
}
void TTDraw(BITMAP *bmp, int x, int y, COLORREF rgb, const char *c, HFONT font2, int align)
{
switch (align) {
case 0 : textout_centre_ex(bmp, font, c, x, y, rgb, -1); break;
case 2 :
{
int width = text_length(font, c);
textout_ex(bmp, font, c, x-width, y, rgb, -1);
}
break;
case 1 :
textout_ex(bmp, font, c, x, y, rgb, -1);
}
}
void InitData()
{
strcpy(a_player[0].name, "Berny");
strcpy(a_player[1].name, "Beza");
FILE *f = fopen("racer.cfg", "rb");
if (f != NULL) {
fread(&a_player[0].name, sizeof(char)*20, 1, f);
fread(&a_player[1].name, sizeof(char)*20, 1, f);
fread(&DF_GAMEX, sizeof(DF_GAMEX), 1, f);
fread(&DF_GAMEY, sizeof(DF_GAMEY), 1, f);
fread(&DF_SVETLA, sizeof(DF_SVETLA), 1, f);
fread(&DF_STINY, sizeof(DF_STINY), 1, f);
fread(&DF_INTRO, sizeof(DF_INTRO), 1, f);
fread(&DF_ZVUK, sizeof(DF_ZVUK), 1, f);
fread(&DF_HUDBA, sizeof(DF_HUDBA), 1, f);
fread(&DF_FULLSCREEN, sizeof(DF_FULLSCREEN), 1, f);
fread(&hmp3.m_volume, sizeof(long), 1, f);
fread(&dsound.m_volume, sizeof(long), 1, f);
fread(&DF_OBTIZNOST, sizeof(DF_OBTIZNOST), 1, f);
fread(&DF_NOCDISABLE, sizeof(DF_NOCDISABLE), 1, f);
fread(&DF_SHADOWDISABLE, sizeof(DF_SHADOWDISABLE), 1, f);
fread(&DF_SMOGDISABLE, sizeof(DF_SMOGDISABLE), 1, f);
fread(&DF_SMYKDISABLE, sizeof(DF_SMYKDISABLE), 1, f);
fread(&DF_BPP, sizeof(DF_BPP), 1, f);
fclose(f);
}
}
void SaveData()
{
FILE *f = fopen("racer.cfg", "wb");
if (f != NULL) {
fwrite(&a_player[0].name, sizeof(char)*20, 1, f);
fwrite(&a_player[1].name, sizeof(char)*20, 1, f);
fwrite(&DF_GAMEX, sizeof(DF_GAMEX), 1, f);
fwrite(&DF_GAMEY, sizeof(DF_GAMEY), 1, f);
fwrite(&DF_SVETLA, sizeof(DF_SVETLA), 1, f);
fwrite(&DF_STINY, sizeof(DF_STINY), 1, f);
fwrite(&DF_INTRO, sizeof(DF_INTRO), 1, f);
fwrite(&DF_ZVUK, sizeof(DF_ZVUK), 1, f);
fwrite(&DF_HUDBA, sizeof(DF_HUDBA), 1, f);
fwrite(&DF_FULLSCREEN, sizeof(DF_FULLSCREEN), 1, f);
fwrite(&hmp3.m_volume, sizeof(long), 1, f);
fwrite(&dsound.m_volume, sizeof(long), 1, f);
fwrite(&DF_OBTIZNOST, sizeof(DF_OBTIZNOST), 1, f);
fwrite(&DF_NOCDISABLE, sizeof(DF_NOCDISABLE), 1, f);
fwrite(&DF_SHADOWDISABLE, sizeof(DF_SHADOWDISABLE), 1, f);
fwrite(&DF_SMOGDISABLE, sizeof(DF_SMOGDISABLE), 1, f);
fwrite(&DF_SMYKDISABLE, sizeof(DF_SMYKDISABLE), 1, f);
fwrite(&DF_BPP, sizeof(DF_BPP), 1, f);
fclose(f);
}
}
void AppInit(int card)
{
install_keyboard();
install_timer();
install_mouse();
int i;
char c[50];
set_mouse_speed(20, 20);
LOCK_VARIABLE(tmr);
LOCK_FUNCTION(timer_procedure);
install_int(timer_procedure, 10);
srand(time(NULL));
hscreen.Install();
hscreen.m_fps_draw = 0;
if (card == GFX_AUTODETECT_WINDOWED) {
if (!hscreen.Init(DF_MENUX, DF_MENUY, 32, H_SCREEN_BUFFER, GFX_AUTODETECT_WINDOWED, true))
exit(0);
}
else
if (!hscreen.Init(DF_MENUX, DF_MENUY, DF_BPP, H_SCREEN_BUFFER, GFX_AUTODETECT, true)) {
set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
allegro_message("Failed to set up resolution \n %d*%d*%d", DF_MENUX, DF_MENUY, DF_BPP);
exit(0);
}
LoadDrivers();
LoadADrivers();
LoadCup();
for (i = 0 ; i < MAX_MOUSE_CUR; i++) {
sprintf( c,"MYS%d.BMP",i);
b_mouse[i] = fload_bitmap(c);
hscreen.m_mousebmps = MAX_MOUSE_CUR;
hscreen.m_mousebmp = b_mouse[0];
}
hscreen.m_mouse = true;
if (DF_HUDBA)
hmp3.Create();
hmp3.PlayMenu();
g_menuGround = fload_bitmap("MENU.BMP");
cout << "App inited" << endl;
}
void AppRun()
{
MMain menu;
cout << "menu running" << endl;
menu.Run();
}
void AppClose()
{
SaveDrivers();
destroy_bitmap(g_menuGround);
hmp3.CleanUp();
hscreen.Destroy();
show_mouse(NULL);
for (int i = 0 ; i < MAX_MOUSE_CUR; i++)
destroy_bitmap(b_mouse[i]);
clear_keybuf();
allegro_exit();
}
void LoadCars()
{
string path = locateFile(CPARAMS_FILE);
FILE *f = fopen(path.c_str(), "rb");
if (f) {
MAX_CARS = fread(Cparams, sizeof(st_GCar_params), MAX_CARS_TOTAL, f);
fclose(f);
cout << "cars found : " << MAX_CARS << endl;
GRun::ComputeMaxUpgrades();
}
}
void LoadADrivers()
{
string path = locateFile(DRIVERS_FILE);
FILE *f = fopen(path.c_str(), "rb");
if (f) {
g_drivers = fread(g_driver, sizeof(st_driver), MAX_DRIVERS, f);
fclose(f);
}
}
void LoadCup()
{
string path = locateFile(CUP_FILE);
FILE *f = fopen(path.c_str(), "rb");
if (f) {
g_maxcup = fread(g_cup, sizeof(st_cup), CUP_MAX, f);
fclose(f);
}
}
void Intro()
{
}
void LoadDrivers()
{
g_players = 0;
FILE *f;
char c[255];
getcwd(c , 255);
DIR *md = opendir(c);
if ( md == NULL ) return;
dirent *d;
while ( (d = readdir(md)) != NULL ) {
if (d->d_name[strlen(d->d_name)-1] != 't') continue;
if ((f = fopen(d->d_name, "rb")) != NULL) {
if (fread(&g_player[g_players], sizeof(st_player), 1, f) == 1) {
g_player[g_players].gpID = g_players;
g_players++;
}
fclose(f);
}
}
closedir(md);
}
void SaveDrivers()
{
char s[100];
FILE *f;
for (int i = 0; i < g_players; i++) {
sprintf(s, "%s.plt", g_player[i].name);
if ((f = fopen(s, "wb")) != NULL) {
fwrite(&g_player[i], sizeof(st_player), 1, f);
fclose(f);
}
}
}
Error: Unable to load sound file
.