raze-gles/source/rr/src/rrdh.cpp

303 lines
6.6 KiB
C++
Raw Normal View History

//-------------------------------------------------------------------------
/*
Copyright (C) 2016 EDuke32 developers and contributors
Copyright (C) 2020 Nuke.YKT
This file is part of EDuke32.
EDuke32 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
//-------------------------------------------------------------------------
#include "compat.h"
#include "baselayer.h"
#include "duke3d.h"
int rrdh_randseed = 1;
int rrdh_random(void)
{
static int seedinit = 0;
if (!seedinit)
{
rrdh_randseed = (int)timerGetPerformanceCounter();
seedinit = 1;
}
rrdh_randseed = (rrdh_randseed*1103515245)+12345;
return (rrdh_randseed>>16)&0x7fff;
}
int ghcons_isanimalescapewall(short w)
{
walltype *wl = &wall[w];
switch (wall[w].picnum)
{
case 1182:
case 1183:
case 1184:
case 1185:
case 2347:
case 3802:
case 3803:
case 7870:
case 7871:
case 7872:
return 1;
}
return 0;
}
int ghcons_isanimalescapesect(short s)
{
sectortype *sc = &sector[s];
return sector[s].hitag == 2001;
}
int ghcons_findnewspot(short a1)
{
// TODO
return 0;
}
int dword_AA260;
int sub_51B68(void)
{
int r;
if ((int)totalclock - dword_AA260 < 200)
return 0;
if ((rrdh_random() & 127) != 64)
return 0;
dword_AA260 = (int)totalclock;
r = 60 + (rrdh_random() % 15);
S_PlaySound(r);
return r;
}
int ghsound_pmadecall(spritetype *a1, short a2)
{
switch (DYNAMICTILEMAP(a1->picnum))
{
case DOGRUN__STATICRR:
if (A_CheckSoundPlaying(-1, 41))
return 1;
case VIXEN__STATICRR:
if (A_CheckSoundPlaying(-1, 40))
return 1;
case PIG__STATICRR:
if (A_CheckSoundPlaying(-1, 42))
return 1;
case CHEER__STATICRR:
if (A_CheckSoundPlaying(-1, 43))
return 1;
}
return 0;
}
int ghsound_pmadesound(spritetype *a1, short a2)
{
int d = klabs(g_player[a2].ps->pos.x - a1->x) + klabs(g_player[a2].ps->pos.y - a1->y);
if (A_CheckSoundPlaying(-1, 1) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 2))
return 1;
if (A_CheckSoundPlaying(-1, 3) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 4))
return 1;
if (A_CheckSoundPlaying(-1, 5) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 6))
return 1;
if (A_CheckSoundPlaying(-1, 7) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 8) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 56) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 57) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 58) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 59) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 25) && d < 21504)
return 1;
if (A_CheckSoundPlaying(-1, 11) && d < 10752)
return 1;
if (A_CheckSoundPlaying(-1, 9) && d < 15360)
return 1;
if (A_CheckSoundPlaying(-1, 10) && d < 30720)
return 1;
if (A_CheckSoundPlaying(-1, 12) && d < 19968)
return 1;
if (A_CheckSoundPlaying(-1, 15) && d < 10752)
return 1;
if (A_CheckSoundPlaying(-1, 13) && d < 15360)
return 1;
if (A_CheckSoundPlaying(-1, 14) && d < 30720)
return 1;
if (A_CheckSoundPlaying(-1, 16) && d < 19968)
return 1;
if (A_CheckSoundPlaying(-1, 19) && d < 10752)
return 1;
if (A_CheckSoundPlaying(-1, 17) && d < 15360)
return 1;
if (A_CheckSoundPlaying(-1, 18) && d < 30720)
return 1;
if (A_CheckSoundPlaying(-1, 20) && d < 19968)
return 1;
if (A_CheckSoundPlaying(-1, 23) && d < 10752)
return 1;
if (A_CheckSoundPlaying(-1, 21) && d < 15360)
return 1;
if (A_CheckSoundPlaying(-1, 22) && d < 30720)
return 1;
if (A_CheckSoundPlaying(-1, 24) && d < 19968)
return 1;
if (A_CheckSoundPlaying(-1, 81) && d < 15360)
return 1;
if (A_CheckSoundPlaying(-1, 80) && d < 30720)
return 1;
if (A_CheckSoundPlaying(-1, 41) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 40) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 42) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 43) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 88) && d < 10752)
return 1;
if (A_CheckSoundPlaying(-1, 89) && d < 15360)
return 1;
if (A_CheckSoundPlaying(-1, 90) && d < 23040)
return 1;
if (A_CheckSoundPlaying(-1, 27) && d < 30720)
return 1;
if (A_CheckSoundPlaying(-1, 36) && d < 30720)
return 1;
if (A_CheckSoundPlaying(-1, 30) && d < 30720)
return 1;
if (A_CheckSoundPlaying(-1, 33) && d < 30720)
return 1;
return 0;
}
int ghsound_pfiredgunnear(spritetype *a1, short a2)
{
if (A_CheckSoundPlaying(-1, 2))
return 1;
if (A_CheckSoundPlaying(-1, 4))
return 1;
if (A_CheckSoundPlaying(-1, 6))
return 1;
if (A_CheckSoundPlaying(-1, 8) && klabs(g_player[a2].ps->pos.x - a1->x) + klabs(g_player[a2].ps->pos.y - a1->y) < 23040)
return 1;
return 0;
}
void ghsound_ambientlooppoll(void)
{
// TODO
}
void sub_53304(void)
{
// TODO
}
int dword_AA2F4;
void sub_535DC(void)
{
dword_AA2F4 ^= 1;
}
int sub_535EC(void)
{
return dword_AA2F4;
}
int dword_AA300;
struct struct2B80E0 {
short f_0;
short f_2;
int f_4;
int f_8;
int f_c;
int f_10;
};
struct2B80E0 f2B80E0[20];
void ghtrophy_loadbestscores(void)
{
// TODO
}
int ghtrophy_isakill(short a1)
{
spritetype *spr = &sprite[a1];
for (int i = 0; i < dword_AA300; i++)
{
if (f2B80E0[i].f_0 == a1)
return 1;
}
return 0;
}
void sub_54DE0(void)
{
// TODO
}
void sub_579A0(void)
{
// TODO
}
int ghtrax_isplrupwind(short a1, short a2)
{
// TODO
return 0;
}
void ghtrax_leavetrax(short a1)
{
// TODO
}
void ghtrax_leavedroppings(short a1)
{
// TODO
}
void ghdeploy_bias(short a1)
{
// TODO
}
void sub_5A02C(void)
{
// TODO
}
void sub_5A250(int a1)
{
// TODO
}