mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 09:21:36 +00:00
Revise shade preview; fix PGUP/PGDN with selected sectors; allow INS/DEL in 2D side-view mode; 64-bit printf cleanup
git-svn-id: https://svn.eduke32.com/eduke32@1860 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
8eda9d683d
commit
76a7799d7c
5 changed files with 63 additions and 30 deletions
|
@ -600,6 +600,7 @@ static inline int32_t deletesprite(int16_t spritenum)
|
||||||
int32_t changespritesect(int16_t spritenum, int16_t newsectnum);
|
int32_t changespritesect(int16_t spritenum, int16_t newsectnum);
|
||||||
int32_t changespritestat(int16_t spritenum, int16_t newstatnum);
|
int32_t changespritestat(int16_t spritenum, int16_t newstatnum);
|
||||||
int32_t setsprite(int16_t spritenum, const vec3_t *new) ATTRIBUTE((nonnull(2)));
|
int32_t setsprite(int16_t spritenum, const vec3_t *new) ATTRIBUTE((nonnull(2)));
|
||||||
|
int32_t setspritez(int16_t spritenum, const vec3_t *new) ATTRIBUTE((nonnull(2)));
|
||||||
|
|
||||||
void spriteheightofs(int16_t i, int32_t *height, int32_t *zofs);
|
void spriteheightofs(int16_t i, int32_t *height, int32_t *zofs);
|
||||||
|
|
||||||
|
|
|
@ -1745,7 +1745,7 @@ static void sideview_filter_keys(void)
|
||||||
{
|
{
|
||||||
switch (i)
|
switch (i)
|
||||||
{
|
{
|
||||||
case 0xd2: case 0xd3: // ins, del
|
// case 0xd2: case 0xd3: // ins, del
|
||||||
case 0x2e: case 0x39: // c, space
|
case 0x2e: case 0x39: // c, space
|
||||||
// case 0xb8: // ralt
|
// case 0xb8: // ralt
|
||||||
keystatus[i] = 0;
|
keystatus[i] = 0;
|
||||||
|
@ -2950,6 +2950,7 @@ void overheadeditor(void)
|
||||||
update_highlightsector();
|
update_highlightsector();
|
||||||
|
|
||||||
message("Extended %ss of highlighted sectors, creating bunch %d", cfs[cf], k);
|
message("Extended %ss of highlighted sectors, creating bunch %d", cfs[cf], k);
|
||||||
|
asksave = 1;
|
||||||
end_yax: ;
|
end_yax: ;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -5540,7 +5541,7 @@ int32_t LoadBoard(const char *filename, uint32_t flags)
|
||||||
startang = ang;
|
startang = ang;
|
||||||
startsectnum = cursectnum;
|
startsectnum = cursectnum;
|
||||||
#ifdef YAX_ENABLE
|
#ifdef YAX_ENABLE
|
||||||
yax_resetbunchnums();
|
// yax_resetbunchnums();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -7455,7 +7455,9 @@ int32_t loadboard(char *filename, char flags, int32_t *daposx, int32_t *daposy,
|
||||||
sprite[i].picnum = 0;
|
sprite[i].picnum = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef YAX_ENABLE
|
||||||
|
yax_update(0);
|
||||||
|
#endif
|
||||||
for (i=0; i<numsprites; i++)
|
for (i=0; i<numsprites; i++)
|
||||||
{
|
{
|
||||||
int32_t k;
|
int32_t k;
|
||||||
|
@ -11096,8 +11098,8 @@ restart_grand:
|
||||||
mcf++;
|
mcf++;
|
||||||
clipsectcnt = 0; clipsectnum = 0;
|
clipsectcnt = 0; clipsectnum = 0;
|
||||||
clipspritecnt = 0; clipspritenum = 0;
|
clipspritecnt = 0; clipspritenum = 0;
|
||||||
didchange = 0;
|
|
||||||
|
|
||||||
|
didchange = 0;
|
||||||
if (cb>=0 && mcf==0 && *ceilhit==sectnum+16384)
|
if (cb>=0 && mcf==0 && *ceilhit==sectnum+16384)
|
||||||
{
|
{
|
||||||
for (i=0; i<origclipsectnum; i++)
|
for (i=0; i<origclipsectnum; i++)
|
||||||
|
@ -11116,8 +11118,10 @@ restart_grand:
|
||||||
if (clipsectnum==0)
|
if (clipsectnum==0)
|
||||||
mcf++;
|
mcf++;
|
||||||
}
|
}
|
||||||
else mcf++;
|
else if (mcf==0)
|
||||||
|
mcf++;
|
||||||
|
|
||||||
|
didchange = 0;
|
||||||
if (fb>=0 && mcf==1 && *florhit==sectnum+16384)
|
if (fb>=0 && mcf==1 && *florhit==sectnum+16384)
|
||||||
{
|
{
|
||||||
// (almost) same as above, but with floors...
|
// (almost) same as above, but with floors...
|
||||||
|
|
|
@ -587,7 +587,9 @@ int32_t map_undoredo(int32_t dir)
|
||||||
if (qsetmode == 200 && rendmode == 4)
|
if (qsetmode == 200 && rendmode == 4)
|
||||||
polymer_loadboard();
|
polymer_loadboard();
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef YAX_ENABLE
|
||||||
|
yax_update(0);
|
||||||
|
#endif
|
||||||
CheckMapCorruption(4, 0);
|
CheckMapCorruption(4, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3835,10 +3837,6 @@ restart:
|
||||||
|
|
||||||
tilescreen_drawrest(iSelected, showmsg);
|
tilescreen_drawrest(iSelected, showmsg);
|
||||||
|
|
||||||
enddrawing();
|
|
||||||
showframe(1);
|
|
||||||
begindrawing();
|
|
||||||
|
|
||||||
k = (mousex || mousey || mouseb);
|
k = (mousex || mousey || mouseb);
|
||||||
if (!k)
|
if (!k)
|
||||||
for (i=0; i<(signed)(sizeof(keystatus)/sizeof(keystatus[0])); i++)
|
for (i=0; i<(signed)(sizeof(keystatus)/sizeof(keystatus[0])); i++)
|
||||||
|
@ -3853,6 +3851,10 @@ restart:
|
||||||
showframe(1);
|
showframe(1);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enddrawing();
|
||||||
|
showframe(1);
|
||||||
|
begindrawing();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5392,7 +5394,7 @@ static void Keys3d(void)
|
||||||
k = 0;
|
k = 0;
|
||||||
if (highlightsectorcnt > 0 && searchsector>=0 && searchsector<numsectors)
|
if (highlightsectorcnt > 0 && searchsector>=0 && searchsector<numsectors)
|
||||||
{
|
{
|
||||||
if (show2dwall[searchsector>>3]&(1<<(searchsector&7)))
|
if (hlsectorbitmap[searchsector>>3]&(1<<(searchsector&7)))
|
||||||
k = highlightsectorcnt;
|
k = highlightsectorcnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9873,7 +9875,7 @@ void ExtAnalyzeSprites(void)
|
||||||
{
|
{
|
||||||
int32_t i, k;
|
int32_t i, k;
|
||||||
spritetype *tspr;
|
spritetype *tspr;
|
||||||
int32_t frames=0, l;
|
int32_t frames=0, sh;
|
||||||
|
|
||||||
for (i=0,tspr=&tsprite[0]; i<spritesortcnt; i++,tspr++)
|
for (i=0,tspr=&tsprite[0]; i<spritesortcnt; i++,tspr++)
|
||||||
{
|
{
|
||||||
|
@ -9896,28 +9898,39 @@ void ExtAnalyzeSprites(void)
|
||||||
tspr->cstat |= 2+512;
|
tspr->cstat |= 2+512;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shadepreview && !(tspr->cstat & 16))
|
/* Shade preview rules (thanks to Gambini)
|
||||||
|
*
|
||||||
|
* 1st rule: Any pal value not equal to 0 in the floor of a sector will
|
||||||
|
* turn all the sprites within this sector to that pal value.
|
||||||
|
*
|
||||||
|
* 2nd rule: The shade of a sprite will be taken from the floor unless the
|
||||||
|
* ceiling is parallaxed, in which case will be taken from the
|
||||||
|
* ceiling. But not the pal which always follow the 1st rule.
|
||||||
|
*
|
||||||
|
* 3rd rule: relative to wall sprites will keep their own shade unless
|
||||||
|
* they're actors, but they will still retain the floor pal.
|
||||||
|
*/
|
||||||
|
if (shadepreview)
|
||||||
{
|
{
|
||||||
|
int32_t wallaligned = (tspr->cstat & 16);
|
||||||
|
|
||||||
if (tspr->sectnum<0)
|
if (tspr->sectnum<0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (sector[tspr->sectnum].ceilingstat&1)
|
// 1st rule
|
||||||
{
|
if (sector[tspr->sectnum].floorpal > 0 && sector[tspr->sectnum].floorpal < num_tables)
|
||||||
l = sector[tspr->sectnum].ceilingshade;
|
tspr->pal = sector[tspr->sectnum].floorpal;
|
||||||
if (sector[tspr->sectnum].ceilingpal != 0 && sector[tspr->sectnum].ceilingpal < num_tables)
|
|
||||||
tspr->pal=sector[tspr->sectnum].ceilingpal;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
l = sector[tspr->sectnum].floorshade;
|
|
||||||
if (sector[tspr->sectnum].floorpal != 0 && sector[tspr->sectnum].floorpal < num_tables)
|
|
||||||
tspr->pal=sector[tspr->sectnum].floorpal;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((tspr->owner>=0 && (sprite[tspr->owner].cstat&2048)==0))
|
// 2nd and 3rd rule minus "actor condition"
|
||||||
|
if (!wallaligned && (tspr->cstat&2048)==0)
|
||||||
{
|
{
|
||||||
inpclamp(&l, -127, 127);
|
if (sector[tspr->sectnum].ceilingstat&1)
|
||||||
// tspr->shade = l;
|
sh = sector[tspr->sectnum].ceilingshade;
|
||||||
|
else
|
||||||
|
sh = sector[tspr->sectnum].floorshade;
|
||||||
|
|
||||||
|
inpclamp(&sh, -127, 127);
|
||||||
|
tspr->shade = sh;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10747,7 +10760,7 @@ static void EditSectorData(int16_t sectnum)
|
||||||
#ifdef YAX_ENABLE
|
#ifdef YAX_ENABLE
|
||||||
if (med_editval)
|
if (med_editval)
|
||||||
{
|
{
|
||||||
if ((row==0 || row==1 || row==3 || row==5) && yax_getbunch(sectnum, (col==2)) >= 0)
|
if ((row==1 || row==3 || row==5) && yax_getbunch(sectnum, (col==2)) >= 0)
|
||||||
med_editval = 0;
|
med_editval = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -10757,8 +10770,15 @@ static void EditSectorData(int16_t sectnum)
|
||||||
switch (row)
|
switch (row)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
#ifdef YAX_ENABLE
|
||||||
|
i = sector[sectnum].ceilingstat&YAX_BIT;
|
||||||
|
#endif
|
||||||
handlemed(1, "Flags (hex)", "Ceiling Flags", §or[sectnum].ceilingstat,
|
handlemed(1, "Flags (hex)", "Ceiling Flags", §or[sectnum].ceilingstat,
|
||||||
sizeof(sector[sectnum].ceilingstat), 65535, 0);
|
sizeof(sector[sectnum].ceilingstat), 65535, 0);
|
||||||
|
#ifdef YAX_ENABLE
|
||||||
|
sector[sectnum].ceilingstat &= ~YAX_BIT;
|
||||||
|
sector[sectnum].ceilingstat |= i;
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
for (i=Bsprintf(med_disptext,"(X,Y)pan: %d, %d",sector[sectnum].ceilingxpanning,sector[sectnum].ceilingypanning); i < med_dispwidth; i++) med_disptext[i] = ' ';
|
for (i=Bsprintf(med_disptext,"(X,Y)pan: %d, %d",sector[sectnum].ceilingxpanning,sector[sectnum].ceilingypanning); i < med_dispwidth; i++) med_disptext[i] = ' ';
|
||||||
|
@ -10798,8 +10818,15 @@ static void EditSectorData(int16_t sectnum)
|
||||||
switch (row)
|
switch (row)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
#ifdef YAX_ENABLE
|
||||||
|
i = sector[sectnum].ceilingstat&YAX_BIT;
|
||||||
|
#endif
|
||||||
handlemed(1, "Flags (hex)", "Floor Flags", §or[sectnum].floorstat,
|
handlemed(1, "Flags (hex)", "Floor Flags", §or[sectnum].floorstat,
|
||||||
sizeof(sector[sectnum].floorstat), 65535, 0);
|
sizeof(sector[sectnum].floorstat), 65535, 0);
|
||||||
|
#ifdef YAX_ENABLE
|
||||||
|
sector[sectnum].ceilingstat &= ~YAX_BIT;
|
||||||
|
sector[sectnum].ceilingstat |= i;
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -798,7 +798,7 @@ int32_t __fastcall Gv_GetVarX(register int32_t id)
|
||||||
}
|
}
|
||||||
|
|
||||||
badindex:
|
badindex:
|
||||||
OSD_Printf(CON_ERROR "Gv_GetVar(): invalid array index (%s[%d])\n",g_errorLineNum,keyw[g_tw],aGameArrays[id].szLabel,negateResult);
|
OSD_Printf(CON_ERROR "Gv_GetVar(): invalid array index (%s[%d])\n",g_errorLineNum,keyw[g_tw],aGameArrays[id].szLabel,(int32_t)negateResult);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
badvarid:
|
badvarid:
|
||||||
|
|
Loading…
Reference in a new issue