mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-26 00:40:56 +00:00
SW: Fix 3D Realms and ANM palettes
git-svn-id: https://svn.eduke32.com/eduke32@8272 1a8010ca-5511-0410-912e-c29ae57300e0 # Conflicts: # source/duke3d/src/astub.cpp # source/sw/src/anim.cpp # source/sw/src/colormap.cpp # source/sw/src/common_game.h # source/sw/src/game.cpp
This commit is contained in:
parent
d679603cab
commit
d410694e40
4 changed files with 30 additions and 43 deletions
|
@ -47,6 +47,8 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
|
||||||
#include "animlib.h"
|
#include "animlib.h"
|
||||||
#include "anim.h"
|
#include "anim.h"
|
||||||
|
|
||||||
|
#include "common_game.h"
|
||||||
|
|
||||||
BEGIN_SW_NS
|
BEGIN_SW_NS
|
||||||
|
|
||||||
#define MAX_ANMS 10
|
#define MAX_ANMS 10
|
||||||
|
@ -262,12 +264,9 @@ unsigned char *LoadAnm(short anim_num)
|
||||||
void
|
void
|
||||||
playanm(short anim_num)
|
playanm(short anim_num)
|
||||||
{
|
{
|
||||||
unsigned char *animbuf, *palptr;
|
unsigned char *animbuf;
|
||||||
int i, j, k, length = 0, numframes = 0;
|
int i, j, k, length = 0, numframes = 0;
|
||||||
int32_t handle = -1;
|
int32_t handle = -1;
|
||||||
unsigned char ANIMvesapal[4*256];
|
|
||||||
char tempbuf[256];
|
|
||||||
char *palook_bak = palookup[0];
|
|
||||||
UserInput uinfo = { FALSE, FALSE, dir_None };
|
UserInput uinfo = { FALSE, FALSE, dir_None };
|
||||||
|
|
||||||
ANIMnum = anim_num;
|
ANIMnum = anim_num;
|
||||||
|
@ -292,21 +291,15 @@ playanm(short anim_num)
|
||||||
DSPRINTF(ds,"PlayAnm - Palette Stuff");
|
DSPRINTF(ds,"PlayAnm - Palette Stuff");
|
||||||
MONO_PRINT(ds);
|
MONO_PRINT(ds);
|
||||||
|
|
||||||
for (i = 0; i < 256; i++)
|
|
||||||
tempbuf[i] = i;
|
|
||||||
palookup[0] = tempbuf;
|
|
||||||
|
|
||||||
ANIM_LoadAnim(animbuf, length);
|
ANIM_LoadAnim(animbuf, length);
|
||||||
ANIMnumframes = ANIM_NumFrames();
|
ANIMnumframes = ANIM_NumFrames();
|
||||||
numframes = ANIMnumframes;
|
numframes = ANIMnumframes;
|
||||||
|
|
||||||
palptr = ANIM_GetPalette();
|
|
||||||
|
|
||||||
|
|
||||||
videoClearViewableArea(0L);
|
videoClearViewableArea(0L);
|
||||||
|
|
||||||
paletteSetColorTable(0, ANIMvesapal, true);
|
paletteSetColorTable(ANIMPAL, ANIM_GetPalette());
|
||||||
videoSetPalette(0,0,2);
|
videoSetPalette(0, ANIMPAL, 2);
|
||||||
if (ANIMnum == 1)
|
if (ANIMnum == 1)
|
||||||
{
|
{
|
||||||
// draw the first frame
|
// draw the first frame
|
||||||
|
@ -375,10 +368,8 @@ ENDOFANIMLOOP:
|
||||||
|
|
||||||
videoClearViewableArea(0L);
|
videoClearViewableArea(0L);
|
||||||
videoNextPage();
|
videoNextPage();
|
||||||
palookup[0] = palook_bak;
|
|
||||||
|
|
||||||
paletteSetColorTable(0, (unsigned char *)palette_data);
|
videoSetPalette(0, BASEPAL, 2);
|
||||||
videoSetPalette(0, 0, 2);
|
|
||||||
|
|
||||||
KB_FlushKeyboardQueue();
|
KB_FlushKeyboardQueue();
|
||||||
KB_ClearKeysDown();
|
KB_ClearKeysDown();
|
||||||
|
|
|
@ -31,6 +31,8 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
|
||||||
#include "pal.h"
|
#include "pal.h"
|
||||||
#include "game.h"
|
#include "game.h"
|
||||||
|
|
||||||
|
#include "common_game.h"
|
||||||
|
|
||||||
BEGIN_SW_NS
|
BEGIN_SW_NS
|
||||||
|
|
||||||
short f_c = 3;
|
short f_c = 3;
|
||||||
|
@ -435,8 +437,8 @@ void SetPaletteToVESA(unsigned char *pal)
|
||||||
|
|
||||||
VBE_setPalette(0, 256, pal_buff);
|
VBE_setPalette(0, 256, pal_buff);
|
||||||
*/
|
*/
|
||||||
paletteSetColorTable(0, pal);
|
paletteSetColorTable(BASEPAL, pal);
|
||||||
videoSetPalette(0,0,4|2);
|
videoSetPalette(0, BASEPAL, 4|2);
|
||||||
// fprintf(stderr,"SetPaletteToVESA() called\n");
|
// fprintf(stderr,"SetPaletteToVESA() called\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,5 +148,15 @@ void SW_ExtInit(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum basepal_ {
|
||||||
|
BASEPAL = 0,
|
||||||
|
DREALMSPAL,
|
||||||
|
TITLEPAL,
|
||||||
|
TENPAL,
|
||||||
|
ANIMPAL,
|
||||||
|
BASEPALCOUNT
|
||||||
|
} basepal_t;
|
||||||
|
|
||||||
END_SW_NS
|
END_SW_NS
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -854,8 +854,8 @@ void AnimateCacheCursor(void)
|
||||||
|
|
||||||
void COVERsetbrightness(int bright, unsigned char *pal)
|
void COVERsetbrightness(int bright, unsigned char *pal)
|
||||||
{
|
{
|
||||||
paletteSetColorTable(0, pal);
|
paletteSetColorTable(BASEPAL, pal);
|
||||||
videoSetPalette(bright, 0, 0);
|
videoSetPalette(bright, BASEPAL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1678,37 +1678,25 @@ LogoLevel(void)
|
||||||
{
|
{
|
||||||
char called;
|
char called;
|
||||||
int fin;
|
int fin;
|
||||||
unsigned char backup_pal[256*3];
|
|
||||||
char tempbuf[256];
|
|
||||||
char *palook_bak = palookup[0];
|
|
||||||
UserInput uinfo = { FALSE, FALSE, dir_None };
|
UserInput uinfo = { FALSE, FALSE, dir_None };
|
||||||
int i;
|
|
||||||
|
|
||||||
|
|
||||||
DSPRINTF(ds,"LogoLevel...");
|
DSPRINTF(ds,"LogoLevel...");
|
||||||
MONO_PRINT(ds);
|
MONO_PRINT(ds);
|
||||||
|
|
||||||
for (i = 0; i < 256; i++)
|
|
||||||
tempbuf[i] = i;
|
|
||||||
palookup[0] = tempbuf;
|
|
||||||
|
|
||||||
DSPRINTF(ds,"Created palookup...");
|
|
||||||
MONO_PRINT(ds);
|
|
||||||
|
|
||||||
//GetPaletteFromVESA(pal);
|
|
||||||
//memcpy(backup_pal, pal, PAL_SIZE);
|
|
||||||
|
|
||||||
DSPRINTF(ds,"Got Palette from VESA...");
|
|
||||||
MONO_PRINT(ds);
|
|
||||||
|
|
||||||
// PreCache Anim
|
// PreCache Anim
|
||||||
LoadAnm(0);
|
LoadAnm(0);
|
||||||
|
|
||||||
auto pal = kloadfile("3drealms.pal", 0);
|
auto pal = kloadfile("3drealms.pal", 0);
|
||||||
if (pal.Size() >= 768)
|
if (pal.Size() >= 768)
|
||||||
{
|
{
|
||||||
paletteSetColorTable(1, pal.Data());
|
|
||||||
videoSetPalette(0, 1, 2);
|
|
||||||
|
for (auto & c : pal)
|
||||||
|
c <<= 2;
|
||||||
|
|
||||||
|
paletteSetColorTable(DREALMSPAL, pal);
|
||||||
|
videoSetPalette(0, DREALMSPAL, 2);
|
||||||
}
|
}
|
||||||
DSPRINTF(ds,"Just read in 3drealms.pal...");
|
DSPRINTF(ds,"Just read in 3drealms.pal...");
|
||||||
MONO_PRINT(ds);
|
MONO_PRINT(ds);
|
||||||
|
@ -1747,13 +1735,9 @@ LogoLevel(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
palookup[0] = palook_bak;
|
|
||||||
|
|
||||||
videoClearViewableArea(0L);
|
videoClearViewableArea(0L);
|
||||||
videoNextPage();
|
videoNextPage();
|
||||||
//SetPaletteToVESA(backup_pal);
|
videoSetPalette(0, BASEPAL, 2);
|
||||||
paletteSetColorTable(0, &palette_data[0][0]);
|
|
||||||
videoSetPalette(0, 0, 2);
|
|
||||||
|
|
||||||
// put up a blank screen while loading
|
// put up a blank screen while loading
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue