Merge pull request #45 from Clownacy/master

More NPCs
This commit is contained in:
Cucky 2019-02-08 16:43:35 -05:00 committed by GitHub
commit 32dd3bef65
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 3057 additions and 96 deletions

View file

@ -1,14 +1,14 @@
#include "WindowsWrapper.h"
#include "Flash.h"
#include "Draw.h"
#include "CommonDefines.h"
#include "Draw.h"
#include "WindowsWrapper.h"
static struct
{
int mode;
int act_no;
bool flag;
BOOL flag;
int cnt;
int width;
int x;
@ -27,7 +27,7 @@ void InitFlash(void)
void SetFlash(int x, int y, int mode)
{
flash.act_no = 0;
flash.flag = true;
flash.flag = TRUE;
flash.x = x;
flash.y = y;
flash.mode = mode;
@ -37,66 +37,72 @@ void SetFlash(int x, int y, int mode)
void ActFlash_Explosion(int flx, int fly)
{
if (flash.act_no == 0)
int left, right, top, bottom;
switch (flash.act_no)
{
flash.cnt += 0x200;
flash.width += flash.cnt;
case 0:
flash.cnt += 0x200;
flash.width += flash.cnt;
int right = (flash.x - flx - flash.width) / 0x200;
int left = (flash.y - fly - flash.width) / 0x200;
int top = (flash.width + flash.x - flx) / 0x200;
int bottom = (flash.width + flash.y - fly) / 0x200;
right = (flash.x - flx - flash.width) / 0x200;
left = (flash.y - fly - flash.width) / 0x200;
top = (flash.x - flx + flash.width) / 0x200;
bottom = (flash.y - fly + flash.width) / 0x200;
if (right < 0)
right = 0;
if (left < 0)
left = 0;
if (top > WINDOW_WIDTH)
top = WINDOW_WIDTH;
if (bottom > WINDOW_HEIGHT)
bottom = WINDOW_HEIGHT;
if (right < 0)
right = 0;
if (left < 0)
left = 0;
if (top > WINDOW_WIDTH)
top = WINDOW_WIDTH;
if (bottom > WINDOW_HEIGHT)
bottom = WINDOW_HEIGHT;
flash.rect1.left = right;
flash.rect1.right = top;
flash.rect1.top = 0;
flash.rect1.bottom = WINDOW_HEIGHT;
flash.rect1.left = right;
flash.rect1.right = top;
flash.rect1.top = 0;
flash.rect1.bottom = WINDOW_HEIGHT;
flash.rect2.left = 0;
flash.rect2.right = WINDOW_WIDTH;
flash.rect2.top = left;
flash.rect2.bottom = bottom;
flash.rect2.left = 0;
flash.rect2.right = WINDOW_WIDTH;
flash.rect2.top = left;
flash.rect2.bottom = bottom;
if (flash.width > (WINDOW_WIDTH << 11))
{
flash.act_no = 1;
flash.cnt = 0;
flash.width = (WINDOW_HEIGHT << 9);
}
}
else if (flash.act_no == 1)
{
flash.width -= flash.width / 8;
if (flash.width > (WINDOW_WIDTH << 11))
{
flash.act_no = 1;
flash.cnt = 0;
flash.width = (WINDOW_HEIGHT << 9);
}
if ((flash.width / 0x100) == 0)
flash.flag = false;
break;
int top = (flash.y - fly - flash.width) / 0x200;
if (top < 0)
top = 0;
case 1:
flash.width -= flash.width / 8;
int bottom = (flash.width + flash.y - fly) / 0x200;
if (bottom > WINDOW_HEIGHT)
bottom = WINDOW_HEIGHT;
if ((flash.width / 0x100) == 0)
flash.flag = FALSE;
flash.rect1.left = 0;
flash.rect1.right = 0;
flash.rect1.top = 0;
flash.rect1.bottom = 0;
top = (flash.y - fly - flash.width) / 0x200;
if (top < 0)
top = 0;
flash.rect2.top = top;
flash.rect2.bottom = bottom;
flash.rect2.left = 0;
flash.rect2.right = WINDOW_WIDTH;
bottom = (flash.y - fly + flash.width) / 0x200;
if (bottom > WINDOW_HEIGHT)
bottom = WINDOW_HEIGHT;
flash.rect1.left = 0;
flash.rect1.right = 0;
flash.rect1.top = 0;
flash.rect1.bottom = 0;
flash.rect2.top = top;
flash.rect2.bottom = bottom;
flash.rect2.left = 0;
flash.rect2.right = WINDOW_WIDTH;
break;
}
}
@ -125,23 +131,36 @@ void ActFlash_Flash(void)
}
if (flash.cnt > 20)
flash.flag = false;
flash.flag = FALSE;
}
void ActFlash(int flx, int fly)
{
if (flash.flag)
if (flash.flag == FALSE)
{
if (flash.mode == 1)
ActFlash_Explosion(flx, fly);
else if (flash.mode == 2)
ActFlash_Flash();
// Do nothing
}
else
{
switch (flash.mode)
{
case 1:
ActFlash_Explosion(flx, fly);
break;
case 2:
ActFlash_Flash();
break;
}
}
}
void PutFlash(void)
{
if (flash.flag)
if (flash.flag == FALSE)
{
// Do nothing
}
else
{
CortBox(&flash.rect1, gFlashColor);
CortBox(&flash.rect2, gFlashColor);
@ -150,5 +169,5 @@ void PutFlash(void)
void ResetFlash(void)
{
flash.flag = false;
flash.flag = FALSE;
}

View file

@ -243,15 +243,43 @@ void ActNpc237(NPCHAR *npc);
void ActNpc238(NPCHAR *npc);
void ActNpc239(NPCHAR *npc);
void ActNpc240(NPCHAR *npc);
void ActNpc241(NPCHAR *npc);
void ActNpc242(NPCHAR *npc);
void ActNpc243(NPCHAR *npc);
void ActNpc244(NPCHAR *npc);
void ActNpc245(NPCHAR *npc);
void ActNpc246(NPCHAR *npc);
void ActNpc247(NPCHAR *npc);
void ActNpc248(NPCHAR *npc);
void ActNpc249(NPCHAR *npc);
void ActNpc250(NPCHAR *npc);
void ActNpc251(NPCHAR *npc);
void ActNpc252(NPCHAR *npc);
void ActNpc253(NPCHAR *npc);
void ActNpc254(NPCHAR *npc);
void ActNpc255(NPCHAR *npc);
void ActNpc256(NPCHAR *npc);
void ActNpc257(NPCHAR *npc);
void ActNpc258(NPCHAR *npc);
void ActNpc259(NPCHAR *npc);
void ActNpc260(NPCHAR *npc);
void ActNpc261(NPCHAR *npc);
void ActNpc262(NPCHAR *npc);
void ActNpc263(NPCHAR *npc);
void ActNpc264(NPCHAR *npc);
void ActNpc265(NPCHAR *npc);
void ActNpc266(NPCHAR *npc);
void ActNpc267(NPCHAR *npc);
void ActNpc268(NPCHAR *npc);
void ActNpc269(NPCHAR *npc);
void ActNpc270(NPCHAR *npc);
void ActNpc271(NPCHAR *npc);
void ActNpc272(NPCHAR *npc);
void ActNpc273(NPCHAR *npc);
void ActNpc274(NPCHAR *npc);
void ActNpc275(NPCHAR *npc);
void ActNpc276(NPCHAR *npc);
void ActNpc277(NPCHAR *npc);
void ActNpc278(NPCHAR *npc);
void ActNpc292(NPCHAR *npc);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -297,43 +297,43 @@ NPCFUNCTION gpNpcFuncTbl[361] =
ActNpc238,
ActNpc239,
ActNpc240,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
ActNpc241,
ActNpc242,
ActNpc243,
ActNpc244,
ActNpc245,
ActNpc246,
ActNpc247,
ActNpc248,
ActNpc249,
ActNpc250,
ActNpc251,
ActNpc252,
ActNpc253,
ActNpc254,
ActNpc255,
ActNpc256,
ActNpc257,
ActNpc258,
ActNpc259,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
ActNpc260,
ActNpc261,
ActNpc262,
ActNpc263,
ActNpc264,
ActNpc265,
ActNpc266,
ActNpc267,
ActNpc268,
ActNpc269,
ActNpc270,
ActNpc271,
ActNpc272,
ActNpc273,
ActNpc274,
ActNpc275,
nullptr,
nullptr,
ActNpc276,
ActNpc277,
ActNpc278,
nullptr,
nullptr,

View file

@ -1,4 +1,15 @@
#pragma once
typedef int BOOL;
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
struct RECT
{
union