linux release build, cleanup repository

This commit is contained in:
Ondřej Novák 2025-02-08 19:27:47 +01:00
parent 529b3e8bf8
commit 3d8ee275e4
441 changed files with 280 additions and 65861 deletions

View file

@ -1,8 +1,16 @@
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/default_font.base64
COMMAND file_to_base64 ${CMAKE_CURRENT_LIST_DIR}/boldcz.fon > ${CMAKE_BINARY_DIR}/default_font.base64
DEPENDS ${CMAKE_CURRENT_LIST_DIR}/boldcz.fon)
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/icon.base64
COMMAND file_to_base64 ${CMAKE_CURRENT_LIST_DIR}/icon.bmp > ${CMAKE_BINARY_DIR}/icon.base64
DEPENDS ${CMAKE_CURRENT_LIST_DIR}/icon.bmp)
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/resources.cpp
COMMAND ${CMAKE_COMMAND} -DOUT=${CMAKE_BINARY_DIR}/resources.cpp -DIN_FONT=${CMAKE_BINARY_DIR}/default_font.base64 -DIN_ICON=${CMAKE_BINARY_DIR}/icon.base64 -DTEMPLATE=${CMAKE_CURRENT_LIST_DIR}/resources.in.cpp -P ${CMAKE_CURRENT_LIST_DIR}/resources_to_cpp.cmake
DEPENDS ${CMAKE_BINARY_DIR}/default_font.base64 ${CMAKE_BINARY_DIR}/icon.base64 ${CMAKE_CURRENT_LIST_DIR}/resources_to_cpp.cmake ${CMAKE_CURRENT_LIST_DIR}/resources.in.cpp
)
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/default_font.cpp
COMMAND ${CMAKE_COMMAND} -DOUT=${CMAKE_BINARY_DIR}/default_font.cpp -DIN=${CMAKE_BINARY_DIR}/default_font.base64 -DTEMPLATE=${CMAKE_CURRENT_LIST_DIR}/default_font.in.cpp -P ${CMAKE_CURRENT_LIST_DIR}/default_font_to_cpp.cmake
@ -37,7 +45,7 @@ gen_stringtable.c
advconfig.c
temp_storage.cpp
lang.c
${CMAKE_BINARY_DIR}/default_font.cpp
${CMAKE_BINARY_DIR}/resources.cpp
)
add_library(skeldal_main ${files})

View file

@ -143,7 +143,8 @@ void save_text_to_map(int x,int y,int depth,char *text)
char c[512],*d;
if (text[0]==0) return;
memset(c,1,sizeof(c));
strcpy(c+12,text);
strncpy(c+12,text,sizeof(c)-13);
c[511] = 0;
if (texty_v_mape==NULL) texty_v_mape=create_list(8);
d=texty_v_mape[str_add(&texty_v_mape,c)];
x=(x-320)+map_xr;

View file

@ -719,13 +719,7 @@ void create_minimap(int sector, int smer)
}
static const float Snapper=3<<22;
static __inline int toInt( float fval )
{
fval += Snapper;
return ( (*(int *)&fval)&0x007fffff ) - 0x00400000;
}
static const void *check_autofade(const void *image, char ceil, int dark)
@ -755,9 +749,9 @@ static const void *check_autofade(const void *image, char ceil, int dark)
int r=*imgdata>>11;
int g=(*imgdata>>5) & 0x3F;
int b=*imgdata & 0x1F;
r=toInt(r+factor*(br-r));
g=toInt(g+factor*(bg-g));
b=toInt(b+factor*(bb-b));
r=(int)(r+factor*(br-r));
g=(int)(g+factor*(bg-g));
b=(int)(b+factor*(bb-b));
*imgdata=(r<<11)|(g<<5)|b;
imgdata++;
}
@ -954,8 +948,8 @@ void draw_players(int sector,int dir,int celx,int cely)
{
int i;
THUMAN *p;
char freep[5];
int j,d,pp=0,f;
char freep[5]= {0,0,0,0,0};
int j,d,pp=0,f=0;
memset(freep,0,sizeof(freep));
for(i=0,pp=0;i<POCET_POSTAV;i++)

View file

@ -301,7 +301,7 @@ static reload_mobs()
{
extern char reset_mobiles;
reset_mobiles=1;
strncpy(loadlevel.name,level_fname,12);
strcopy_n(loadlevel.name,level_fname,12);
loadlevel.start_pos=viewsector;
loadlevel.name[12]=0;
loadlevel.dir=viewdir;
@ -685,7 +685,7 @@ static int process_with_params(const char *cmd, const char *args) {
if (istrcmp(cmd, "portal-jump") == 0) {
if (check_file_exists(build_pathname(2,gpathtable[SR_MAP], args))) {
TMA_LOADLEV lev;
strncpy(lev.name,args,12);
strcopy_n(lev.name,args,12);
lev.start_pos = 0;
macro_load_another_map(&lev);
return 1;
@ -779,12 +779,14 @@ static void wzprintf(const char *text,...)
while (d != NULL) {
*d = 0;
strncat(wzprint_line,c, console_max_characters);
wzprint_line[console_max_characters] = 0;
console_add_line(wzprint_line);
c = d+1;
d = strchr(c, '\n');
wzprint_line[0] = 0;
}
strncat(wzprint_line, c, console_max_characters);
wzprint_line[console_max_characters] = 0;
}

View file

@ -1,5 +0,0 @@
void *LoadDefaultFont(void);

View file

@ -1,14 +0,0 @@
#include <libs/base64.h>
constexpr binary_data font_data ="@CONTENT@";
extern "C" {
const void *LoadDefaultFont() {
return font_data.begin();
}
}

View file

@ -1,4 +0,0 @@
file(READ ${IN} CONTENT)
configure_file(${TEMPLATE} ${OUT} @ONLY)

View file

@ -159,7 +159,7 @@ static void dialog_anim(va_list args)
const void *anm;
void *aptr;
char hid;
int spdc=0,cntr=rep,tm,tm2;
int spdc=0,cntr=rep,tm = 0,tm2 = 0;
int32_t scr_linelen2 = GetScreenPitch();
loc_anim_render_buffer=PIC_Y*scr_linelen2+PIC_X;
@ -216,7 +216,7 @@ static void run_anim(char *name,int speed,int rep)
static void error(char *text)
{
char buff[256];
sprintf(buff,"%s v odstavci %d\r\nLocal_pgf=%d / DIALOG : %d / SENTENCE : %d\r\n",text,last_pgf+local_pgf,local_pgf,local_pgf/128,last_pgf);
sprintf(buff,"%.125s v odstavci %d\r\nLocal_pgf=%d / DIALOG : %d / SENTENCE : %d\r\n",text,last_pgf+local_pgf,local_pgf,local_pgf/128,last_pgf);
// MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP|MB_SYSTEMMODAL);
SEND_LOG("(DIALOGS) Dialog error detected at %d:%d",local_pgf/128,last_pgf);
SEND_LOG("(DIALOGS) Error description: %s",text);
@ -312,7 +312,7 @@ static char *transfer_text(const char *source,char *target)
if (*source=='l')
{
sn_nums[0]=sn_nums[num];
strcpy(sn_nams[0],sn_nams[num]);
strcopy_n(sn_nams[0],sn_nams[num],sizeof(sn_nams[0]));
sn_rods[0]=sn_rods[num];
}
break;
@ -554,14 +554,14 @@ static void lecho(char *c)
static void save_name(int pos)
{
sn_nums[pos]=sn_nums[0];
strcpy(sn_nams[pos],sn_nams[0]);
strcopy_n(sn_nams[pos],sn_nams[0],sizeof(sn_nams[pos]));
sn_rods[pos]=sn_rods[0];
}
static void load_name(int pos)
{
sn_nums[0]=sn_nums[pos];
strcpy(sn_nams[0],sn_nams[pos]);
strcopy_n(sn_nams[0],sn_nams[pos],sizeof(sn_nams[0]));
sn_rods[0]=sn_rods[pos];
}
@ -1260,7 +1260,7 @@ void do_dialog()
case 134:p1=Get_short();p2=Get_short();nahodne(VLS_SMAGIE,p1,p2);break;
case 135:p1=Get_short();p2=Get_short();nahodne(VLS_SILA,p1,p2);break;
case 136:p1=Get_short();p2=Get_short();nahodne(VLS_OBRAT,p1,p2);break;
case 137:c=Get_string();p1=Get_short();strncpy(sn_nams[0],c,32);sn_rods[0]=p1;break;
case 137:c=Get_string();p1=Get_short();strcopy_n(sn_nams[0],c,32);sn_rods[0]=p1;break;
case 138:iff=Get_short();break;
case 139:goto_paragraph(Get_short());break;
case 140:p1=Get_short();if (iff) goto_paragraph(p1);break;

View file

@ -314,9 +314,9 @@ static char pick_item_corpse(TMOB *m,char query)
static char seber_predmet(TMOB *m)
{
short *p=NULL,*q;
int i,j,c,z;
int i,j,c,z = 0;
for(j=0,c=0;j<MOBS_INV;j++,c+=(m->inv[j]==0));
for(j=0,c=0;j<MOBS_INV;c+=(m->inv[j]==0),++j);
i=0;
do
{
@ -535,7 +535,7 @@ char je_mozne_videt(int sector1, int sector2, int flag) {
int q_vidis_postavu(int sector,int dir,TMOB *p,int *otocit_se,char ret)
{
int i,z=-1;
int xs,ys,nd,d,dis=255;
int xs,ys,nd=0,d,dis=255;
if (p->vlastnosti[VLS_KOUZLA] & SPL_BLIND) return -1;
if (p->vlastnosti[VLS_KOUZLA] & SPL_FEAR) return -1;
@ -558,7 +558,7 @@ int q_vidis_postavu(int sector,int dir,TMOB *p,int *otocit_se,char ret)
if (ok)
if (je_mozne_videt(sector,postavy[i].sektor,SD_MONST_IMPS | SD_PLAY_IMPS))
{
int alt;
int alt = 0;
if (ys>=abs(xs)) {nd=0;alt=xs>0?3:1;}
else if (xs>=abs(ys)) {nd=3;alt=ys>0?0:2;}
else if (ys<=(-abs(xs))) {nd=2;alt=xs>0?1:3;}
@ -1198,7 +1198,7 @@ static int mob_check_teleport(int sect,int num)
void mob_step_next(int num,int sect,int dir,char *change)
{
int c,numm,d;
int c,numm,d = 0;
TMOB *p;
*change+=128;
@ -1387,7 +1387,7 @@ void mob_hit(TMOB *mm,int dostal)
bott_draw(0);
if (mm->lives<1)
{
int xpos;
int xpos = 0;
switch (viewdir)
{
case 0:xpos=-(mm->locx-128);break;

View file

@ -623,7 +623,7 @@ int save_basic_info()
s.out_filter=get_snd_effect(SND_OUTFILTER);
s.autosave=autosave_enabled;
s.game_flags=(enable_glmap!=0);
strncpy(s.level_name,level_fname,12);
strcopy_n(s.level_name,level_fname,12);
for(i=0;i<5;i++) s.runes[i]=runes[i];
if (picked_item!=NULL)
for(i=1,p=picked_item;*p;i++,p++);else i=0;
@ -712,7 +712,7 @@ int load_basic_info()
set_snd_effect(SND_OUTFILTER,s.out_filter);
if (level_fname==NULL || strncmp(s.level_name,level_fname,12))
{
strncpy(loadlevel.name,s.level_name,12);
strcopy_n(loadlevel.name,s.level_name,12);
loadlevel.start_pos=viewsector;
loadlevel.dir=viewdir;
send_message(E_CLOSE_MAP);
@ -760,7 +760,7 @@ int save_game(int slotnum,char *gamename)
ssn=alloca(strlen(sn)+3);
sprintf(ssn,sn,slotnum);
gn=alloca(SAVE_NAME_SIZE);
strncpy(gn,gamename,SAVE_NAME_SIZE);
strcopy_n(gn,gamename,SAVE_NAME_SIZE);
if ((r=save_shops())!=0) return r;
if ((r=save_basic_info())!=0) return r;
save_book();

View file

@ -1721,7 +1721,7 @@ int smlouvat_prodej(int cena,int ponuka,int posledni,int puvod,int pocet);
THAGGLERESULT smlouvat_dlg(int cena,int puvod,int pocet,int posledni, int money,char mode);
void disable_intro(void);
void show_jrc_logo(char *filename);
//void show_jrc_logo(char *filename);
//dialogy

View file

@ -206,7 +206,7 @@ static char test_kriterii(void)
char last_op=0;
char not_op=0;
char text[128];
char hodn;
char hodn = 0;
char vysl=0;
char symb,*c;
@ -427,7 +427,7 @@ static char flp_validate(word sector, void *ctx)
{
m=mobs+mob_map[sector]-1;
if (m->vlajky & ~MOB_PASSABLE) return 0;
if (!m->next)
if (m->next)
if (mobs[m->next-1].vlajky & ~MOB_PASSABLE) return 0;
}
c=map_sectors[sector].sector_type;
@ -484,7 +484,7 @@ static char load_index_map(int index)
*/
if (!GlobEvent(MAGLOB_LEAVEMAP,viewsector,viewdir)) return 0;
viewsector=lv;
strncpy(x.name,index_tab[index].mapname,12);
strcopy_n(x.name,index_tab[index].mapname,12);
x.start_pos=0;
x.dir=0;
macro_load_another_map(&x);

0
game/icon.base64 Normal file
View file

BIN
game/icon.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

View file

@ -544,7 +544,7 @@ char labyrinth_find_path(word start,word konec,int flag,char (*proc)(word, void
ok_flags[start>>3]|=1<<(start & 0x7);
for(*stk_free++=start;stk_free!=stk_cur;stk_cur++)
{
uint8_t i;word s,d,ss;
uint8_t i;word s=0,d=0,ss=0;
s=(ss=Lo(*stk_cur))<<2;
for(i=0;i<4;i++) if (!(map_sides[s+i].flags & flag))
{
@ -1181,7 +1181,7 @@ void fletna_pridej_notu(char note)
{
note+=65;
fletna_str[pos]=note;
if (pos==13) memcpy(fletna_str,fletna_str+1,pos);
if (pos==13) memmove(fletna_str,fletna_str+1,pos-1);
else pos++;
}
@ -1535,6 +1535,7 @@ THAGGLERESULT smlouvat_dlg(int cena,int puvod,int pocet,int posledni, int money,
return res;
}
#if 0
//----------------- JRC LOGO ----------------------------------
#define SHOWDELAY 125
@ -1611,3 +1612,4 @@ void show_jrc_logo(char *filename)
showview(0,0,0,0);
free(pcx);
}
#endif

View file

@ -248,9 +248,9 @@ void load_items()
*sep = 0;
--sep;
}
strncpy(glob_items[i].popis, nx, sizeof(glob_items[i].popis)-1);
strcopy_n(glob_items[i].popis, nx, sizeof(glob_items[i].popis)-1);
}
strncpy(glob_items[i].jmeno, trnw, sizeof(glob_items[i].jmeno)-1);
strcopy_n(glob_items[i].jmeno, trnw, sizeof(glob_items[i].jmeno)-1);
}
}
stringtable_free(str_table);
@ -270,7 +270,7 @@ static short expand_itemlist(void)
if (item_count>32766)
{
int i,j;
int i,j = 0;
for(i=it_count_orgn;i<item_count;i++)
{
@ -1377,7 +1377,7 @@ static T_INV_SCRIPT script[]=
static int calc_value(int parm,int lenght)
{
int32_t l;
int32_t l = 0;
if (parm>=0) l=*(int32_t *)(((char *)human_selected)+parm);
else
switch (parm)

View file

@ -323,7 +323,7 @@ static int get_data_handle(char *filename,void *dec)
static void insert_picture(char *filename,int align,int line,int lsize)
{
int x, y;
int x=0, y=0;
const short *psiz;
char *c=write_buff;
@ -391,7 +391,7 @@ static char read_tag(TMPFILE_RD *txt)
while (c!='>')
{
c=read_set(txt,var,set);
if (!strcmp(var,SRC)) strncpy(pic_name,set,49);
if (!strcmp(var,SRC)) strcopy_n(pic_name,set,49);
else if (!strcmp(var,ALIGN))
{
if (!strcmp(set,ALEFT)) alig=1;

View file

@ -205,14 +205,14 @@ const void *load_spells_legacy_format(const void *p, int32_t *s) {
k = (np);
for (int i = 0; i < count; ++i) {
char *b = (char *)k;
char traceon = *(k->spellname-1); //traceon was there;
char traceon = b[offsetof(TKOUZLO, spellname)-1]; //traceon was there;
size_t bofs = offsetof(TKOUZLO, traceon);
size_t eofs = offsetof(TKOUZLO, spellname)-1;
memmove(b+bofs+1, b+bofs, eofs-bofs);\
k->traceon = traceon;
const char *new_name = stringtable_find(strtable, i, NULL);
if (new_name) {
strncpy(k->spellname,new_name,sizeof(k->spellname)-1);
strcopy_n(k->spellname,new_name,sizeof(k->spellname)-1);
}
++k;
}
@ -435,7 +435,7 @@ static void spell_vzplanuti2(THE_TIMER *tt)
static void spell_vzplanuti(int cil,int count,int hit,char mode,char zivel)
{
THE_TIMER *tt;
int sector,smer;
int sector = 0,smer = 0;
int i,o,d;
if (cil<0)
{
@ -467,7 +467,7 @@ static void spell_vzplanuti(int cil,int count,int hit,char mode,char zivel)
void spell_create(int cil,int what)
{
word sector=0;
char dir;
char dir = 0;
short p[2];
if (dead_food) {
@ -508,7 +508,7 @@ void spell_create_weapon(int cil,int what)
void spell_throw(int cil,int what)
{
word sector=0;
char dir;
char dir = 0;
LETICI_VEC *fly;
get_sector_dir(cil,&sector,&dir);
@ -1029,7 +1029,7 @@ void spell_teleport_sector(int cil,int owner)
if (cil!=owner) return;
postavy_teleport_effect(0,0,0,1);
strncpy(loadlevel.name,TelepLocation.map,12);
strcopy_n(loadlevel.name,TelepLocation.map,12);
loadlevel.name[12]=0;
loadlevel.start_pos=TelepLocation.sector;
loadlevel.dir=TelepLocation.dir;
@ -1102,7 +1102,7 @@ void spell_teleport_sector(int cil,int owner)
static void spell_summon(int cil)
{
short sector,i,rn,rno,slc;
short sector = 0,i,rn,rno,slc;
int stdir,p;
if (cil>0) sector=postavy[cil-1].sektor;
@ -1664,11 +1664,11 @@ void call_spell(int i)
TelepLocation.map = 0;
break;
default: {
char *d =
const char *d =
"Chyba v popisu kouzel: Program narazil na neznamou instrukci %d (%02X) pri zpracovani kouzla s cislem %d. Kouzlo bylo ukon<6F>eno";
char *c = alloca(strlen(d) + 20);
sprintf(c, d, *(c - 1), *(c - 1), p->num);
bott_disp_text(c);
char *buff = alloca(strlen(d) + 20);
sprintf(buff, d, *(c - 1), *(c - 1), p->num);
bott_disp_text(buff);
spell_end(i, p->cil, p->owner);
return;
}

View file

@ -118,7 +118,9 @@ void load_macros(int size,void *data)
macro_state_block.states = (uint8_t *)(macros+count_s);
macro_state_block.count = count_m;
TMULTI_ACTION *m_iter = (TMULTI_ACTION *)(macro_state_block.states + count_m);
#ifndef NDEBUG
TMULTI_ACTION *m_end = m_iter + count_m;
#endif
first_macro = m_iter;
iter = data;
@ -603,8 +605,8 @@ static void ma_move_group(int where,int turn,char effect)
else
{
THUMAN *h=postavy;
int i;
int sctr;
int i=0;
int sctr=0;
char kdo=0;
for(i=0;i<POCET_POSTAV;i++,h++)
if (get_player_triggered(i)) kdo|=1<<i,sctr=postavy[i].sektor;

View file

@ -422,7 +422,7 @@ static int title_lines[640][2];
static int insert_next_line(int ztrata)
{
char *c;
char *c = 0;
int ll=-1;
RedirectScreenBufferSecond();
do

View file

@ -1692,7 +1692,7 @@ int check_path(word **path,word tosect)
{
word *p,*n,ss;
char ok;
int i;
int i=0;
p=*path;
n=p+1;ok=0;
@ -1735,7 +1735,7 @@ static unsigned int get_path_len(const word *w) {
void recall()
{
int tosect;
int tosect = 0;
unsigned int max,i;
int j;
word *paths[POCET_POSTAV];

8
game/resources.h Normal file
View file

@ -0,0 +1,8 @@
const void *LoadDefaultFont(void);
const void *getWindowIcon(void);
size_t getWindowIconSize(void);

21
game/resources.in.cpp Normal file
View file

@ -0,0 +1,21 @@
#include <libs/base64.h>
constexpr binary_data font_data ="@FONT_CONTENT@";
constexpr binary_data icon_data ="@ICON_CONTENT@";
extern "C" {
const void *LoadDefaultFont(void) {
return font_data.begin();
}
const void *getWindowIcon(void) {
return icon_data.begin();
}
size_t getWindowIconSize(void) {
return std::distance(icon_data.begin(),icon_data.end());
}
}

View file

@ -0,0 +1,5 @@
file(READ ${IN_FONT} FONT_CONTENT)
file(READ ${IN_ICON} ICON_CONTENT)
configure_file(${TEMPLATE} ${OUT} @ONLY)

View file

@ -27,7 +27,7 @@ char q_runsetup(char *parm)
{
char c[6];
strncpy(c,parm,6);
strcopy_n(c,parm,6);
strupper(c);
return !strncmp(c,"/SETUP",6);
}

View file

@ -16,7 +16,7 @@
#include <libs/inicfg.h>
#include <platform/save_folder.h>
#include "globals.h"
#include "default_font.h"
#include "resources.h"
//
#include "advconfig.h"
#include "skeldal.h"
@ -691,10 +691,9 @@ void *user_timer(EVENT_MSG *msg,void **usr)
void do_timer(void)
{
EVENT_MSG msg;
char x;
msg.msg=E_IDLE;
otevri_zavoru=&x;
*otevri_zavoru=1;
user_timer(&msg,NULL);
}
@ -865,7 +864,7 @@ void swap_error_exception(void)
exit(0);
}
void *boldcz;
const void *boldcz;
#define ERR_WINX 320
#define ERR_WINY 100
@ -946,6 +945,7 @@ void init_skeldal(const INI_CONFIG *cfg)
exit(1);
}
showview = game_display_update_rect;
game_display_set_icon(getWindowIcon(), getWindowIconSize());
general_engine_init();
atexit(done_skeldal);
@ -1065,7 +1065,7 @@ extern char running_battle;
ReloadMapInfo *minfo=va_arg(msg->data, ReloadMapInfo *);
const char *fname=minfo->fname;
int sektor=minfo->sektor;
strncpy(loadlevel.name,fname,sizeof(loadlevel.name));
strcopy_n(loadlevel.name,fname,sizeof(loadlevel.name));
loadlevel.start_pos=sektor;
for(i=0;i<POCET_POSTAV;i++)postavy[i].sektor=loadlevel.start_pos;
SEND_LOG("(WIZARD) Load map '%s' %d",loadlevel.name,loadlevel.start_pos);
@ -1140,7 +1140,7 @@ static int do_config_skeldal(int num,int numdata,char *txt)
sound_detection=0;
break;
case 6:snd_mixing=numdata;break;
case 7:strncpy(default_map,txt,20);default_map[19]='\0';break;
case 7:strcopy_n(default_map,txt,20);default_map[19]='\0';break;
case 8:gamespeed=numdata;break;
case 9:level_preload=numdata;break;
// case 10:system(txt);break;
@ -1305,7 +1305,7 @@ static void game_big_circle(char enforced)
char s[13];
purge_playlist();
s[12]=0;strncpy(s,loadlevel.name,12);
s[12]=0;strcopy_n(s,loadlevel.name,12);
err=load_map(s);
if (!enforced)
{
@ -1363,7 +1363,7 @@ static void game_big_circle(char enforced)
enter_game();
leave_current_map();
s[12]=0;strncpy(s,loadlevel.name,12);
s[12]=0;strcopy_n(s,loadlevel.name,12);
if (s[0]!=0)err=load_map(s);
memset(GlobEventList,0,sizeof(GlobEventList));
@ -1384,9 +1384,9 @@ static void new_game(int argc, char *argv[])
load_shops();
open_story_file();
if (argc<2)
strncpy(loadlevel.name,default_map,12);
strcopy_n(loadlevel.name,default_map,12);
else
strncpy(loadlevel.name,argv[1],12);
strcopy_n(loadlevel.name,argv[1],12);
if (argc>2)
{
sscanf(argv[2],"%d",&sect);
@ -1490,7 +1490,7 @@ static void start(va_list args)
schovej_mysku();
if (!any_save())
{
show_jrc_logo("LOGO.PCX");
// show_jrc_logo("LOGO.PCX");
play_anim(7);
}
skip_intro=0;
@ -1573,7 +1573,7 @@ const char *configure_pathtable(const INI_CONFIG *cfg) {
static char default_subpaths[DEFAULT_SUBPATHS][DEFAULT_SUBPATHS_LEN];
for (int i = 0; i < DEFAULT_SUBPATHS; ++i) {
strncpy(default_subpaths[i], build_pathname(2, "graphics", sub_paths[i]), DEFAULT_SUBPATHS_LEN);
strcopy_n(default_subpaths[i], build_pathname(2, "graphics", sub_paths[i]), DEFAULT_SUBPATHS_LEN);
}
const INI_CONFIG_SECTION *paths = ini_section_open(cfg, "paths");
@ -1603,6 +1603,7 @@ void display_error(const char *format, ...) {
if (display_error_cb) {
char buff[1024];
vsnprintf(buff,sizeof(buff), format, lst);
display_error_cb(buff);
} else {
fprintf(stderr, format, lst);
}

View file

@ -733,7 +733,7 @@ void wire_end_game()
if (mname != NULL) {
cur_group = postavy[i].groupnum;
TMA_LOADLEV lv;
strncpy(lv.name,mname, sizeof(lv.name)-1);
strcopy_n(lv.name,mname, sizeof(lv.name)-1);
lv.start_pos = -postavy[i].sektor;
lv.dir = postavy[i].direction;
macro_load_another_map(&lv);
@ -902,7 +902,7 @@ void utek_postavy(THUMAN *p)
int trace_path(int sector,int dir)
{
int mm,p,c=5;
int mm,p=0,c=5;
int r=rnd(2);
do
{
@ -2247,7 +2247,7 @@ char zasah_veci(int sector,TFLY *fl)
mob2=m1->next-MOB_START;
if (mob2>=0)
{
int x1,y1;
int x1=0,y1=0;
m2=&mobs[mob2];
switch (fl->smer)
{

View file

@ -223,13 +223,6 @@ static void show_liane(THE_TIMER *t)
static const float Snapper=3<<22;
static __inline int toInt(float fval)
{
fval += Snapper;
return ( (*(int *)&fval)&0x007fffff ) - 0x00400000;
}
static void OtocObrazPodleMatice(float mx[3][2], word *picture)
{
@ -243,8 +236,8 @@ static void OtocObrazPodleMatice(float mx[3][2], word *picture)
{
int oldx=x-320;
int oldy=y-180;
int newx=toInt(oldx*mx[0][0]+oldy*mx[1][0]+320);
int newy=toInt(oldx*mx[0][1]+oldy*mx[1][1]+180);
int newx=(int)(oldx*mx[0][0]+oldy*mx[1][0]+320);
int newy=(int)(oldx*mx[0][1]+oldy*mx[1][1]+180);
if (newx>=0 && newx<640 && newy>=0 && newy<360)
trg[x]=picture[newx+640*newy];
else

View file

@ -43,7 +43,7 @@ void temp_storage_store(const char *name, const void *data, int32_t size) {
v.resize(size+1);
v[size] = 0;
v.resize(size);
std::copy(b,e, v.begin());
std::copy(b,e, v.begin());
}
int32_t temp_storage_find(const char *name) {

View file

@ -287,7 +287,7 @@ void unpack_save(void *in)
s.items_added=0;
s.glob_flags=0;
s.game_time=0;
strncpy(s.level_name,mapname,12);
strcopy_n(s.level_name,mapname,12);
memset(s.runes,0,sizeof(s.runes));
}
@ -583,7 +583,7 @@ void begin_program(char *sourceadv,char *targetadv)
cprintf("Vystupni dobrodruzstvi %s musi obsahovat polozku DEFAULT_MAP\n\r", targetadv);
exit(1);
}
strncpy(mapname,c,12);mapname[12]=0;
strcopy_n(mapname,c,12);mapname[12]=0;
c=get_text_field(trg,"CESTA_MAPY");
if (c==NULL)
{

View file

@ -359,7 +359,7 @@ static reload_mobs()
{
extern char reset_mobiles;
reset_mobiles=1;
strncpy(loadlevel.name,level_fname,12);
strcopy_n(loadlevel.name,level_fname,12);
loadlevel.start_pos=viewsector;
loadlevel.name[12]=0;
loadlevel.dir=viewdir;