MuckyFoot-UrbanChaos/fallen/DDEngine/Source/DCback.cpp
2017-05-20 11:14:17 +10:00

258 lines
3.9 KiB
C++

#if 0
//
// The background...
//
#include <ddlib.h>
#include "back.h"
D3DTexture BACK_ot_roper;
D3DTexture BACK_ot_darci;
D3DTexture BACK_ot_mib;
D3DTexture BACK_ot_line;
D3DTexture BACK_ot_logo;
SLONG BACK_starttime;
void BACK_init()
{
BACK_ot_roper.LoadTextureTGA("RoperEdgeNail.tga", -1);
BACK_ot_darci.LoadTextureTGA("GunshotNail.tga", -1);
BACK_ot_mib .LoadTextureTGA("ThreeAmigos4.tga", -1);
BACK_ot_line .LoadTextureTGA("Bumpyline.tga", -1);
BACK_ot_logo .LoadTextureTGA("uclogo.tga", -1);
BACK_starttime = GetTickCount();
}
void BACK_draw()
{
ULONG colour;
OS_Buffer *ob;
float between = 0.0F;
D3DTexture *ot1;
D3DTexture *ot2;
SLONG now = GetTickCount() - BACK_starttime;
if (now < 2048)
{
//
// Draw nothing for a while...
//
colour = 0;
}
else
if (now < 4096)
{
//
// Then fade in over the next two seconds...
//
colour = now - 2048 >> 4;
colour |= colour << 8;
colour |= colour << 8;
}
else
{
now -= 4000;
colour = 0x808080;
}
switch((now >> 14) % 3)
{
case 0:
ot1 = &BACK_ot_roper;
ot2 = &BACK_ot_darci;
break;
case 1:
ot1 = &BACK_ot_darci;
ot2 = &BACK_ot_mib;
break;
case 2:
ot1 = &BACK_ot_mib;
ot2 = &BACK_ot_roper;
break;
default:
ASSERT(0);
break;
}
now &= 0x3fff;
if (now < 6000)
{
between = 0.0F;
}
else
if (now < 10000)
{
between = (now - 6000) * (1.0F / 4000.0F);
}
else
{
between = 1.0F;
}
if (between < 1.0F)
{
ob = OS_buffer_new();
OS_buffer_add_sprite(
ob,
0.0F, 0.0F, 1.0F - between, 1.0F,
0.0F, 1.0F, 1.0F - between, 0.0F,
0.9999F,
colour,
0x00000000,
OS_FADE_RIGHT);
OS_buffer_draw(ob, ot1, NULL, OS_DRAW_ZALWAYS);
}
if (between > 0.0F)
{
ob = OS_buffer_new();
OS_buffer_add_sprite(
ob,
1.0F - between, 0.0F, 1.0F, 1.0F,
1.0F - between, 1.0F, 1.0F, 0.0F,
0.9999F,
colour,
0x00000000,
OS_FADE_RIGHT);
OS_buffer_draw(ob, ot2, NULL, OS_DRAW_ZALWAYS);
}
if (between > 0.0F && between < 1.0F)
{
ob = OS_buffer_new();
OS_buffer_add_line_2d(
ob,
1.0F - between, 0.0F,
1.0F - between, 1.0F,
0.04F * frand(),
0.0F, 0.0F - frand(),
1.0F, 2.0F + frand(),
0.0F,
ftol((1.0F - between) * 255) | 0x5522ff);
OS_buffer_draw(ob, BACK_ot_line, NULL, OS_DRAW_ADD | OS_DRAW_NOZWRITE | OS_DRAW_ZALWAYS);
}
//
// Draw the UC logo.
//
static SLONG start = 2000;
static SLONG fade = 2100;
static SLONG end = 9000;
static SLONG which = 0;
static float v1 = 1.0F - 0.00F;
static float v2 = 1.0F - 0.22F;
if (OS_ticks() < start)
{
//
// Do nothing...
//
}
else
if (OS_ticks() < fade || OS_ticks() > end)
{
SLONG i;
ULONG colour = 0x404040;
ob = OS_buffer_new();
for (i = 0; i < 4; i++)
{
OS_buffer_add_sprite(
ob,
0.70F + frand() * 0.02F - 0.01F, 0.9F + frand() * 0.02F - 0.01F - (v1 - v2) * 0.17F,
0.96F + frand() * 0.02F - 0.01F, 0.9F + frand() * 0.02F - 0.01F + (v1 - v2) * 0.17F,
0.0F, v1,
1.0F, v2,
0.0F,
colour);
}
OS_buffer_draw(ob, BACK_ot_logo, NULL, OS_DRAW_ADD | OS_DRAW_ZALWAYS | OS_DRAW_NOZWRITE);
if (OS_ticks() > end + 100)
{
//
// Start again!
//
start = end + 5000;
fade = start + 100;
end = fade + 5000;
which += 1;
if (which == 3)
{
which = 0;
}
switch(which)
{
case 0:
v1 = 1.0F - 0.57F;
v2 = 1.0F - 1.00F;
break;
case 1:
v1 = 1.0F - 63.0F / 256.0F;
v2 = 1.0F - 142.0F / 256.0F;
break;
case 2:
v1 = 1.0F - 0.00F;
v2 = 1.0F - 0.22F;
break;
default:
ASSERT(0);
break;
}
}
}
else
{
ob = OS_buffer_new();
OS_buffer_add_sprite(
ob,
0.70F, 0.9F - (v1 - v2) * 0.17F,
0.96F, 0.9F + (v1 - v2) * 0.17F,
0.0F, v1,
1.0F, v2,
0.0F,
0xffffff);
OS_buffer_draw(ob, BACK_ot_logo, NULL, OS_DRAW_ADD | OS_DRAW_ZALWAYS | OS_DRAW_NOZWRITE);
}
}
#endif