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
+39 -1
View File
@@ -249,6 +249,8 @@ void AnimClass::Draw_It(int x, int y, WindowNumberType window)
int shapenum = Class->Start + Fetch_Stage();
void const * remap = NULL;
ShapeFlags_Type flags = SHAPE_CENTER|SHAPE_WIN_REL;
int width = 0;
int height = 0;
/*
** Some animations require special fixups.
@@ -276,6 +278,12 @@ void AnimClass::Draw_It(int x, int y, WindowNumberType window)
y += (3 * ICON_PIXEL_H / 4) - Get_Build_Frame_Height(shapefile);
transtable = Map.UnitShadow;
break;
case ANIM_BEACON_VIRTUAL:
width = 29;
height = 39;
flags = flags | SHAPE_BOTTOM | SHAPE_COMPACT;
break;
}
/*
@@ -303,7 +311,7 @@ void AnimClass::Draw_It(int x, int y, WindowNumberType window)
** Draw the animation shape, but ignore legacy if beyond normal stage count.
*/
if ((window == WINDOW_VIRTUAL) || (Fetch_Stage() < Class->Stages)) {
CC_Draw_Shape(this, shapefile, shapenum, x, y, window, flags, remap, transtable, Class->VirtualScale);
CC_Draw_Shape(this, shapefile, shapenum, x, y, window, flags, remap, transtable, Class->VirtualScale, width, height);
}
}
}
@@ -571,6 +579,7 @@ AnimClass::AnimClass(AnimType animnum, COORDINATE coord, unsigned char timedelay
Object = 0;
SortTarget = TARGET_NONE;
OwnerHouse = HOUSE_NONE;
KillTime = 0ULL;
if (Class->Stages == -1) {
((int&)Class->Stages) = Get_Build_Frame_Count(Class->Get_Image_Data());
@@ -732,6 +741,19 @@ void AnimClass::AI(void)
IsToDelete = true;
}
/*
** Check the kill time.
*/
if (KillTime > 0ULL) {
FILETIME ft;
GetSystemTimeAsFileTime(&ft);
unsigned long long now = (unsigned long long)ft.dwLowDateTime + ((unsigned long long)ft.dwHighDateTime << 32ULL);
if (now >= KillTime) {
IsToDelete = true;
}
}
/*
** Delete this animation and bail early if the animation is flagged to be deleted
** immediately.
@@ -1292,4 +1314,20 @@ void AnimClass::Detach(TARGET target, bool all)
IsToDelete = true;
}
}
}
void AnimClass::Set_Owner(HousesType owner)
{
OwnerHouse = owner;
if (VirtualAnim != NULL) {
VirtualAnim->Set_Owner(owner);
}
}
void AnimClass::Set_Visible_Flags(unsigned flags)
{
VisibleFlags = flags;
if (VirtualAnim != NULL) {
VirtualAnim->Set_Visible_Flags(flags);
}
}