September 16th patch update

DLL version incremented
Beacon functionality added
Support for loading screen match preview display
Placeholder handling of new key-bindable mod commands
This commit is contained in:
PG-SteveT 2020-09-16 10:03:04 -07:00
parent e37e174be1
commit fd05be35c1
68 changed files with 1313 additions and 267 deletions

View file

@ -282,7 +282,7 @@ EventClass::EventClass(EventType type, TargetClass src, TargetClass dest)
* HISTORY: *
* 05/19/1995 JLB : Created. *
*=============================================================================================*/
EventClass::EventClass(AnimType anim, HousesType owner, COORDINATE coord)
EventClass::EventClass(AnimType anim, HousesType owner, COORDINATE coord, int visible)
{
ID = PlayerPtr->ID;
Type = ANIMATION;
@ -290,6 +290,7 @@ EventClass::EventClass(AnimType anim, HousesType owner, COORDINATE coord)
Data.Anim.What = anim;
Data.Anim.Owner = owner;
Data.Anim.Where = coord;
Data.Anim.Visible = visible;
}
@ -600,14 +601,17 @@ void EventClass::Execute(void)
case ANIMATION:
anim = new AnimClass(Data.Anim.What, Data.Anim.Where);
if (anim) {
//2019/09/19 JAS - Visibility needs to be determined per player
if (Data.Anim.Owner == HOUSE_NONE || Data.Anim.What != ANIM_MOVE_FLASH)
{
anim->Set_Visible_Flags(static_cast<unsigned int>(-1));
}
else
{
anim->Set_Visible_Flags(1 << Data.Anim.Owner);
anim->Set_Owner(Data.Anim.Owner);
anim->Set_Visible_Flags(static_cast<unsigned int>(Data.Anim.Visible));
/*
** Beacons have a 30-second kill time.
*/
if (Data.Anim.What == ANIM_BEACON) {
FILETIME ft;
GetSystemTimeAsFileTime(&ft);
unsigned long long kill_time = ((unsigned long long)ft.dwLowDateTime + ((unsigned long long)ft.dwHighDateTime << 32ULL)) + 300000000ULL;
anim->Kill_At(kill_time);
}
}
break;