mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 09:21:36 +00:00
Merged alpha.cfg with tiles.cfg parsing
git-svn-id: https://svn.eduke32.com/eduke32@1075 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
44c3436075
commit
a30229fcf2
2 changed files with 91 additions and 128 deletions
|
@ -3210,25 +3210,6 @@ int64 ldistsqr(spritetype *s1,spritetype *s2)
|
||||||
((int64)(s2->y - s1->y))*((int64)(s2->y - s1->y)));
|
((int64)(s2->y - s1->y))*((int64)(s2->y - s1->y)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
void dumpalphabets()
|
|
||||||
{
|
|
||||||
int i,j;
|
|
||||||
|
|
||||||
OSD_Printf("numalphabets=%d\n", numalphabets);
|
|
||||||
|
|
||||||
for (i=0; i<numalphabets; i++)
|
|
||||||
{
|
|
||||||
for (j=0; j<NUMPRINTABLES; j++)
|
|
||||||
{
|
|
||||||
OSD_Printf("%c:%d ", j+33, alphabets[i].pic[j]);
|
|
||||||
if ((j&15)==0) OSD_Printf("\n");
|
|
||||||
}
|
|
||||||
OSD_Printf("\n\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void rendertext(short startspr)
|
void rendertext(short startspr)
|
||||||
{
|
{
|
||||||
char ch, buffer[80], doingspace=0;
|
char ch, buffer[80], doingspace=0;
|
||||||
|
@ -3282,7 +3263,6 @@ ENDFOR1:
|
||||||
if (alphidx==-1)
|
if (alphidx==-1)
|
||||||
{
|
{
|
||||||
message("Must point at a text sprite.");
|
message("Must point at a text sprite.");
|
||||||
// dumpalphabets();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3461,7 +3441,7 @@ ENDFOR1:
|
||||||
day -= ((sp->xrepeat*spcgap[alphidx]*sintable[(daang+512)&2047])>>17);
|
day -= ((sp->xrepeat*spcgap[alphidx]*sintable[(daang+512)&2047])>>17);
|
||||||
doingspace = 1;
|
doingspace = 1;
|
||||||
}
|
}
|
||||||
else if (ch == 8 || ch == 127) // backspace
|
else if (ch == 8 /*|| ch == 127*/) // backspace
|
||||||
{
|
{
|
||||||
if (numletters > 0)
|
if (numletters > 0)
|
||||||
{
|
{
|
||||||
|
@ -8039,6 +8019,7 @@ int parsetilegroups(scriptfile *script)
|
||||||
{ "#define", T_DEFINE },
|
{ "#define", T_DEFINE },
|
||||||
{ "tilegroup", T_TILEGROUP },
|
{ "tilegroup", T_TILEGROUP },
|
||||||
{ "spritehotkey", T_HOTKEY },
|
{ "spritehotkey", T_HOTKEY },
|
||||||
|
{ "alphabet", T_ALPHABET },
|
||||||
};
|
};
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
|
@ -8176,110 +8157,6 @@ int parsetilegroups(scriptfile *script)
|
||||||
tile_groups++;
|
tile_groups++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case T_EOF:
|
|
||||||
return(0);
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int loadtilegroups(char *fn)
|
|
||||||
{
|
|
||||||
int i, j;
|
|
||||||
scriptfile *script;
|
|
||||||
TileGroup blank = { NULL, 0, NULL, 0, 0, 0, 0};
|
|
||||||
|
|
||||||
script = scriptfile_fromfile(fn);
|
|
||||||
if (!script) return -1;
|
|
||||||
|
|
||||||
for (i = MAX_TILE_GROUPS-1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
Bmemcpy(&s_TileGroups[i],&blank,sizeof(blank));
|
|
||||||
}
|
|
||||||
|
|
||||||
parsetilegroups(script);
|
|
||||||
|
|
||||||
scriptfile_close(script);
|
|
||||||
scriptfile_clearsymbols();
|
|
||||||
|
|
||||||
tilegroupItems = getTileGroup("Items");
|
|
||||||
tilegroupActors = getTileGroup("Actors");
|
|
||||||
|
|
||||||
// Apply 2d sprite colors as specified in tiles.cfg.
|
|
||||||
for (i = 0; i < MAX_TILE_GROUPS; i++)
|
|
||||||
{
|
|
||||||
if (s_TileGroups[i].szText == NULL) break;
|
|
||||||
// If the colors were specified...
|
|
||||||
if (s_TileGroups[i].color1 && s_TileGroups[i].color2)
|
|
||||||
{
|
|
||||||
for (j = s_TileGroups[i].nIds-1; j >= 0 ; j--)
|
|
||||||
{
|
|
||||||
// Apply the colors to all tiles in the group.
|
|
||||||
spritecol2d[s_TileGroups[i].pIds[j]][0] = s_TileGroups[i].color1;
|
|
||||||
spritecol2d[s_TileGroups[i].pIds[j]][1] = s_TileGroups[i].color2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int parsealphabets(scriptfile *script)
|
|
||||||
{
|
|
||||||
int tokn;
|
|
||||||
char *cmdtokptr;
|
|
||||||
|
|
||||||
tokenlist alphtokens[] =
|
|
||||||
{
|
|
||||||
{ "include", T_INCLUDE },
|
|
||||||
{ "#include", T_INCLUDE },
|
|
||||||
{ "define", T_DEFINE },
|
|
||||||
{ "#define", T_DEFINE },
|
|
||||||
{ "alphabet", T_ALPHABET },
|
|
||||||
};
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
tokn = getatoken(script,alphtokens,sizeof(alphtokens)/sizeof(tokenlist));
|
|
||||||
cmdtokptr = script->ltextptr;
|
|
||||||
switch (tokn)
|
|
||||||
{
|
|
||||||
case T_INCLUDE:
|
|
||||||
{
|
|
||||||
char *fn;
|
|
||||||
if (!scriptfile_getstring(script,&fn))
|
|
||||||
{
|
|
||||||
scriptfile *included;
|
|
||||||
|
|
||||||
included = scriptfile_fromfile(fn);
|
|
||||||
if (!included)
|
|
||||||
{
|
|
||||||
initprintf("Warning: Failed including %s on line %s:%d\n",
|
|
||||||
fn, script->filename,scriptfile_getlinum(script,cmdtokptr));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
parsealphabets(included);
|
|
||||||
scriptfile_close(included);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case T_DEFINE:
|
|
||||||
{
|
|
||||||
char *name;
|
|
||||||
int number;
|
|
||||||
|
|
||||||
if (scriptfile_getstring(script,&name)) break;
|
|
||||||
if (scriptfile_getsymbol(script,&number)) break;
|
|
||||||
if (scriptfile_addsymbolvalue(name,number) < 0)
|
|
||||||
initprintf("Warning: Symbol %s was NOT redefined to %d on line %s:%d\n",
|
|
||||||
name,number,script->filename,scriptfile_getlinum(script,cmdtokptr));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case T_ALPHABET:
|
case T_ALPHABET:
|
||||||
{
|
{
|
||||||
char *end;
|
char *end;
|
||||||
|
@ -8403,18 +8280,45 @@ int parsealphabets(scriptfile *script)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int loadalphabets(char *fn)
|
int loadtilegroups(char *fn)
|
||||||
{
|
{
|
||||||
|
int i, j;
|
||||||
scriptfile *script;
|
scriptfile *script;
|
||||||
|
TileGroup blank = { NULL, 0, NULL, 0, 0, 0, 0};
|
||||||
|
|
||||||
script = scriptfile_fromfile(fn);
|
script = scriptfile_fromfile(fn);
|
||||||
if (!script) return -1;
|
if (!script) return -1;
|
||||||
|
|
||||||
parsealphabets(script);
|
for (i = MAX_TILE_GROUPS-1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
Bmemcpy(&s_TileGroups[i],&blank,sizeof(blank));
|
||||||
|
}
|
||||||
|
|
||||||
|
parsetilegroups(script);
|
||||||
|
|
||||||
scriptfile_close(script);
|
scriptfile_close(script);
|
||||||
scriptfile_clearsymbols();
|
scriptfile_clearsymbols();
|
||||||
|
|
||||||
|
tilegroupItems = getTileGroup("Items");
|
||||||
|
tilegroupActors = getTileGroup("Actors");
|
||||||
|
|
||||||
|
// Apply 2d sprite colors as specified in tiles.cfg.
|
||||||
|
for (i = 0; i < MAX_TILE_GROUPS; i++)
|
||||||
|
{
|
||||||
|
if (s_TileGroups[i].szText == NULL) break;
|
||||||
|
// If the colors were specified...
|
||||||
|
if (s_TileGroups[i].color1 && s_TileGroups[i].color2)
|
||||||
|
{
|
||||||
|
for (j = s_TileGroups[i].nIds-1; j >= 0 ; j--)
|
||||||
|
{
|
||||||
|
// Apply the colors to all tiles in the group.
|
||||||
|
spritecol2d[s_TileGroups[i].pIds[j]][0] = s_TileGroups[i].color1;
|
||||||
|
spritecol2d[s_TileGroups[i].pIds[j]][1] = s_TileGroups[i].color2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8612,7 +8516,6 @@ int ExtInit(void)
|
||||||
registerosdcommands();
|
registerosdcommands();
|
||||||
|
|
||||||
loadtilegroups("tiles.cfg");
|
loadtilegroups("tiles.cfg");
|
||||||
loadalphabets("alpha.cfg");
|
|
||||||
|
|
||||||
ReadHelpFile("m32help.hlp");
|
ReadHelpFile("m32help.hlp");
|
||||||
|
|
||||||
|
|
|
@ -157,3 +157,63 @@ tilegroup "Letters and numbers"
|
||||||
tilerange 640 649
|
tilerange 640 649
|
||||||
tilerange 2472 2481
|
tilerange 2472 2481
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Alphabet configuration for text entry tool in 3D mode
|
||||||
|
// (press Ctrl-T on a wall-aligned letter)
|
||||||
|
// 32 alphabets max.
|
||||||
|
|
||||||
|
alphabet // blue font
|
||||||
|
{
|
||||||
|
maprange 33 126 STARTALPHANUM
|
||||||
|
|
||||||
|
offseta "^" 0 2
|
||||||
|
offseta "qQ;" 0 -1
|
||||||
|
}
|
||||||
|
|
||||||
|
alphabet
|
||||||
|
{
|
||||||
|
maprange 33 126 MINIFONT
|
||||||
|
maprangea "a" "z" 3104
|
||||||
|
|
||||||
|
// offset "\\" 0 3 doesn't work
|
||||||
|
offset 92 0 3
|
||||||
|
offseta "qQ" 0 -1
|
||||||
|
offseta ":" 0 1
|
||||||
|
offseta "\"" 0 3
|
||||||
|
}
|
||||||
|
|
||||||
|
alphabet // red font
|
||||||
|
{
|
||||||
|
maprangea "0" "9" 2930
|
||||||
|
maprangea "A" "Z" BIGALPHANUM
|
||||||
|
maprangea "a" "z" BIGALPHANUM
|
||||||
|
mapa "-" 2929
|
||||||
|
mapa ".,!?;:/%" 3002
|
||||||
|
mapa "'" 3022
|
||||||
|
}
|
||||||
|
|
||||||
|
alphabet // silver font
|
||||||
|
{
|
||||||
|
maprangea "0" "9" 2992
|
||||||
|
maprangea "A" "Z" 2966
|
||||||
|
maprangea "a" "z" 2966
|
||||||
|
}
|
||||||
|
|
||||||
|
alphabet // yellow numbers 3x5
|
||||||
|
{
|
||||||
|
maprangea "0" "9" THREEBYFIVE
|
||||||
|
mapa ":/" 3020
|
||||||
|
offseta ":" 0 1
|
||||||
|
}
|
||||||
|
|
||||||
|
alphabet // silver numbers
|
||||||
|
{
|
||||||
|
maprangea "1" "9" W_NUMBERS
|
||||||
|
mapa "0" 649
|
||||||
|
}
|
||||||
|
|
||||||
|
alphabet
|
||||||
|
{
|
||||||
|
maprangea "0" "9" DIGITALNUM
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue