mirror of
https://github.com/jmarshall23/CnC_Remastered_Collection.git
synced 2026-08-12 08:00:55 +02:00
Merge remote-tracking branch 'upstream/master' into nev6502_branch
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
[Basic]
|
||||||
|
Name=In the thick of it
|
||||||
|
Intro=<none>
|
||||||
|
Brief=<none>
|
||||||
|
Win=<none>
|
||||||
|
Lose=<none>
|
||||||
|
Action=<none>
|
||||||
|
Player=Greece
|
||||||
|
Theme=No theme
|
||||||
|
CarryOverMoney=0
|
||||||
|
ToCarryOver=no
|
||||||
|
ToInherit=no
|
||||||
|
TimerInherit=no
|
||||||
|
CivEvac=no
|
||||||
|
NewINIFormat=3
|
||||||
|
CarryOverCap=0
|
||||||
|
EndOfGame=no
|
||||||
|
NoSpyPlane=no
|
||||||
|
SkipScore=no
|
||||||
|
OneTimeOnly=no
|
||||||
|
SkipMapSelect=no
|
||||||
|
Official=yes
|
||||||
|
FillSilos=no
|
||||||
|
TruckCrate=no
|
||||||
|
Percent=0
|
||||||
|
|
||||||
|
[Map]
|
||||||
|
Theater=SNOW
|
||||||
|
X=49
|
||||||
|
Y=49
|
||||||
|
Width=30
|
||||||
|
Height=30
|
||||||
|
|
||||||
|
[Waypoints]
|
||||||
|
98=8256
|
||||||
|
99=8256
|
||||||
|
|
||||||
|
[MapPack]
|
||||||
|
1=BwAAIIH//v8f/4AHAAAggf/+/x//gAcAACCB//7/H/+ABwAAIIH//v8f/4AHAAAggQD+/x
|
||||||
|
2=8AgAcAACCBAP7/HwCA
|
||||||
|
|
||||||
|
[Base]
|
||||||
|
Player=USSR
|
||||||
|
Count=0
|
||||||
|
|
||||||
|
[OverlayPack]
|
||||||
|
1=BwAAIIH//v8f/4AHAAAggf/+/x//gA==
|
||||||
|
|
||||||
|
[Briefing]
|
||||||
|
1=Rescue Einstein from the Headquarters inside this Soviet complex. Once
|
||||||
|
2=found, evacuate him via the helicopter at the signal flare. Einstein and
|
||||||
|
3=Tanya must be kept alive at all costs. Beware the Soviet's Tesla Coils.
|
||||||
|
4=Direct Tanya to destroy the westmost power plants to take them off-line.
|
||||||
|
|
||||||
|
[Digest]
|
||||||
|
1=bUa2F8EZhneJpy9AdS3S50JUrJE=
|
||||||
|
|
||||||
+67
-43
@@ -2759,6 +2759,7 @@ static BuildingTypeClass const ClassLarva2(
|
|||||||
);
|
);
|
||||||
#endif
|
#endif
|
||||||
void const * BuildingTypeClass::WarFactoryOverlay;
|
void const * BuildingTypeClass::WarFactoryOverlay;
|
||||||
|
Image_t* BuildingTypeClass::WarFactoryHDOverlay;
|
||||||
void const * LightningShapes;
|
void const * LightningShapes;
|
||||||
|
|
||||||
|
|
||||||
@@ -3034,6 +3035,47 @@ void BuildingTypeClass::Init_Heap(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Image_t* BuildingTypeClass::LoadHDImage(const char* fullname, int& numHDShapes) {
|
||||||
|
const char* imageFileName = Buildings_FindHDTexture(fullname, 0, 0);
|
||||||
|
Image_t* image = NULL;
|
||||||
|
|
||||||
|
numHDShapes = -1;
|
||||||
|
|
||||||
|
if (imageFileName) {
|
||||||
|
image = Image_LoadImage(imageFileName, true, true);
|
||||||
|
int numBuildingAnims = Buildings_GetNumFramesForTile(fullname, 0);
|
||||||
|
int shapeId = 1;
|
||||||
|
|
||||||
|
// Load the old school animation pipeline.
|
||||||
|
{
|
||||||
|
while (true) {
|
||||||
|
imageFileName = Buildings_FindHDTexture(fullname, shapeId, 0);
|
||||||
|
if (imageFileName == NULL)
|
||||||
|
break;
|
||||||
|
|
||||||
|
for (int d = 0; d < MAX_MPLAYER_COLORS; d++) {
|
||||||
|
Image_Add32BitImage(imageFileName, image, d, shapeId, 0);
|
||||||
|
}
|
||||||
|
shapeId++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (numBuildingAnims > 0)
|
||||||
|
{
|
||||||
|
for (int i = 1; i < numBuildingAnims; i++) {
|
||||||
|
imageFileName = Buildings_FindHDTexture(fullname, 0, i);
|
||||||
|
for (int d = 0; d < MAX_MPLAYER_COLORS; d++) {
|
||||||
|
Image_Add32BitImage(imageFileName, image, d, 0, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
image->numFrames = numBuildingAnims;
|
||||||
|
numHDShapes = shapeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************************************
|
/***********************************************************************************************
|
||||||
* BuildingTypeClass::One_Time -- Performs special one time action for buildings. *
|
* BuildingTypeClass::One_Time -- Performs special one time action for buildings. *
|
||||||
@@ -3135,63 +3177,45 @@ void BuildingTypeClass::One_Time(void)
|
|||||||
building.Init_Anim(BSTATE_CONSTRUCTION, 0, count, timedelay);
|
building.Init_Anim(BSTATE_CONSTRUCTION, 0, count, timedelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int numhdimages = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Fetch the normal game shape for this building.
|
** Fetch the normal game shape for this building.
|
||||||
*/
|
*/
|
||||||
_makepath(fullname, NULL, NULL, building.Graphic_Name(), ".SHP");
|
_makepath(fullname, NULL, NULL, building.Graphic_Name(), ".SHP");
|
||||||
((void const *&)building.ImageData) = MFCD::Retrieve(fullname);
|
((void const *&)building.ImageData) = MFCD::Retrieve(fullname);
|
||||||
{
|
((void const*&)building.HDImageData) = LoadHDImage(fullname, numhdimages);
|
||||||
const char* imageFileName = Buildings_FindHDTexture(fullname, 0, 0);
|
|
||||||
|
|
||||||
if (imageFileName) {
|
if (building.ImageData != NULL && building.HDImageData != NULL) {
|
||||||
Image_t *image = Image_LoadImage(imageFileName, true, true);
|
int width = Get_Build_Frame_Width(building.ImageData);
|
||||||
int numBuildingAnims = Buildings_GetNumFramesForTile(fullname, 0);
|
int height = Get_Build_Frame_Height(building.ImageData);
|
||||||
int shapeId = 1;
|
|
||||||
|
|
||||||
// Load the old school animation pipeline.
|
for (int d = 0; d < numhdimages; d++)
|
||||||
{
|
{
|
||||||
while (true) {
|
building.HDImageData->renderwidth[d] = width;
|
||||||
imageFileName = Buildings_FindHDTexture(fullname, shapeId, 0);
|
building.HDImageData->renderheight[d] = height;
|
||||||
if (imageFileName == NULL)
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
for (int d = 0; d < MAX_MPLAYER_COLORS; d++) {
|
|
||||||
Image_Add32BitImage(imageFileName, image, d, shapeId, 0);
|
|
||||||
}
|
|
||||||
shapeId++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (numBuildingAnims > 0)
|
|
||||||
{
|
|
||||||
for (int i = 1; i < numBuildingAnims; i++) {
|
|
||||||
imageFileName = Buildings_FindHDTexture(fullname, 0, i);
|
|
||||||
for (int d = 0; d < MAX_MPLAYER_COLORS; d++) {
|
|
||||||
Image_Add32BitImage(imageFileName, image, d, 0, i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
image->numFrames = numBuildingAnims;
|
|
||||||
((void const*&)building.HDImageData) = image;
|
|
||||||
|
|
||||||
if (building.ImageData != NULL && building.HDImageData != NULL) {
|
|
||||||
int width = Get_Build_Frame_Width(building.ImageData);
|
|
||||||
int height = Get_Build_Frame_Height(building.ImageData);
|
|
||||||
|
|
||||||
for (int d = 0; d < shapeId; d++)
|
|
||||||
{
|
|
||||||
building.HDImageData->renderwidth[d] = width;
|
|
||||||
building.HDImageData->renderheight[d] = height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int specialNumHDImages = 0;
|
||||||
|
|
||||||
// Try to load weap2.shp and tesla coil's lightning shapes
|
// Try to load weap2.shp and tesla coil's lightning shapes
|
||||||
char fullname[_MAX_FNAME+_MAX_EXT];
|
char fullname[_MAX_FNAME+_MAX_EXT];
|
||||||
_makepath(fullname, NULL, NULL, (char const *)"WEAP2",".SHP");
|
_makepath(fullname, NULL, NULL, (char const *)"WEAP2",".SHP");
|
||||||
WarFactoryOverlay = MFCD::Retrieve(fullname);
|
WarFactoryOverlay = MFCD::Retrieve(fullname);
|
||||||
|
WarFactoryHDOverlay = LoadHDImage(fullname, specialNumHDImages);
|
||||||
|
if (WarFactoryOverlay != NULL && WarFactoryHDOverlay != NULL) {
|
||||||
|
int width = Get_Build_Frame_Width(WarFactoryOverlay);
|
||||||
|
int height = Get_Build_Frame_Height(WarFactoryOverlay);
|
||||||
|
|
||||||
|
for (int d = 0; d < specialNumHDImages; d++)
|
||||||
|
{
|
||||||
|
WarFactoryHDOverlay->renderwidth[d] = width;
|
||||||
|
WarFactoryHDOverlay->renderheight[d] = height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_makepath(fullname, NULL, NULL, (char const *)"LITNING",".SHP");
|
_makepath(fullname, NULL, NULL, (char const *)"LITNING",".SHP");
|
||||||
LightningShapes = MFCD::Retrieve(fullname);
|
LightningShapes = MFCD::Retrieve(fullname);
|
||||||
|
|
||||||
|
|||||||
+19
-11
@@ -454,14 +454,8 @@ void BuildingClass::Draw_It(int x, int y, WindowNumberType window) const
|
|||||||
{
|
{
|
||||||
assert(Buildings.ID(this) == ID);
|
assert(Buildings.ID(this) == ID);
|
||||||
assert(IsActive);
|
assert(IsActive);
|
||||||
// jmarshall
|
|
||||||
Image_t* hdimage = Get_HDImage_Data();
|
Image_t* hdimage = Get_HDImage_Data();
|
||||||
if (hdimage != NULL) {
|
|
||||||
Techno_Draw_Object_HD(hdimage, Shape_Number(), x, y, window);
|
|
||||||
TechnoClass::Draw_It(x, y, window);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// jmarshall end
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** The shape file to use for rendering depends on whether the building
|
** The shape file to use for rendering depends on whether the building
|
||||||
@@ -474,7 +468,14 @@ void BuildingClass::Draw_It(int x, int y, WindowNumberType window) const
|
|||||||
** Actually draw the building shape.
|
** Actually draw the building shape.
|
||||||
*/
|
*/
|
||||||
IsTheaterShape = Class->IsTheater; //Let Build_Frame know if this is a theater specific shape
|
IsTheaterShape = Class->IsTheater; //Let Build_Frame know if this is a theater specific shape
|
||||||
Techno_Draw_Object(shapefile, Shape_Number(), x, y, window);
|
// jmarshall - added HD support
|
||||||
|
if (hdimage != NULL) {
|
||||||
|
Techno_Draw_Object_HD(hdimage, Shape_Number(), x, y, window);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Techno_Draw_Object(shapefile, Shape_Number(), x, y, window);
|
||||||
|
}
|
||||||
|
// jmarshall end
|
||||||
IsTheaterShape = false;
|
IsTheaterShape = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -504,9 +505,16 @@ void BuildingClass::Draw_It(int x, int y, WindowNumberType window) const
|
|||||||
if ( (*this == STRUCT_WEAP || *this == STRUCT_FAKEWEAP)) {
|
if ( (*this == STRUCT_WEAP || *this == STRUCT_FAKEWEAP)) {
|
||||||
int shapenum = Door_Stage();
|
int shapenum = Door_Stage();
|
||||||
if (Health_Ratio() <= Rule.ConditionYellow) shapenum += 4;
|
if (Health_Ratio() <= Rule.ConditionYellow) shapenum += 4;
|
||||||
// Added override shape file name. ST - 8/1/2019 5:24PM
|
// jmarshall - added HD support.
|
||||||
//Techno_Draw_Object(Class->WarFactoryOverlay, shapenum, x, y, window);
|
if (Class->WarFactoryHDOverlay)
|
||||||
Techno_Draw_Object_Virtual(Class->WarFactoryOverlay, shapenum, x, y, window, DIR_N, 0x0100, "WEAP2");
|
{
|
||||||
|
Techno_Draw_Object_HD(Class->WarFactoryHDOverlay, shapenum, x, y, window, DIR_N, 0x0100);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Techno_Draw_Object_Virtual(Class->WarFactoryOverlay, shapenum, x, y, window, DIR_N, 0x0100, "WEAP2");
|
||||||
|
}
|
||||||
|
// jmarshall end
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ extern bool Debug_Cheat;
|
|||||||
extern bool Debug_Remap;
|
extern bool Debug_Remap;
|
||||||
extern bool Debug_Flag;
|
extern bool Debug_Flag;
|
||||||
extern bool Debug_Lose;
|
extern bool Debug_Lose;
|
||||||
|
extern bool Debug_SkipBriefing;
|
||||||
extern bool Debug_Map;
|
extern bool Debug_Map;
|
||||||
extern bool Debug_Win;
|
extern bool Debug_Win;
|
||||||
extern bool Debug_Icon;
|
extern bool Debug_Icon;
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ bool Debug_Remap = false;
|
|||||||
bool Debug_Icon = false;
|
bool Debug_Icon = false;
|
||||||
bool Debug_Flag = true;
|
bool Debug_Flag = true;
|
||||||
bool Debug_Lose = false;
|
bool Debug_Lose = false;
|
||||||
|
bool Debug_SkipBriefing = false;
|
||||||
bool Debug_Win = false;
|
bool Debug_Win = false;
|
||||||
bool Debug_Map = false; // true = map editor mode
|
bool Debug_Map = false; // true = map editor mode
|
||||||
bool Debug_Passable = false; // true = show passable/impassable terrain
|
bool Debug_Passable = false; // true = show passable/impassable terrain
|
||||||
|
|||||||
+30
-1
@@ -1294,6 +1294,34 @@ bool Select_Game(bool fade)
|
|||||||
** Play a VQ
|
** Play a VQ
|
||||||
*/
|
*/
|
||||||
case SEL_INTRO:
|
case SEL_INTRO:
|
||||||
|
// jmarshall
|
||||||
|
#ifdef SCENARIO_EDITOR
|
||||||
|
Debug_Map = true;
|
||||||
|
Clear_Scenario();
|
||||||
|
//Scen.Set_Scenario_Name(1, SCEN_PLAYER_SPAIN, SCEN_DIR_EAST, SCEN_VAR_A);
|
||||||
|
strcpy(Scen.ScenarioName, "DEFAULTMAP.INI");
|
||||||
|
/*
|
||||||
|
** Create houses
|
||||||
|
*/
|
||||||
|
for (HousesType house = HOUSE_FIRST; house < HOUSE_COUNT; house++) {
|
||||||
|
new HouseClass(house);
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerPtr = HouseClass::As_Pointer(HOUSE_SPAIN);
|
||||||
|
PlayerPtr->IsHuman = true;
|
||||||
|
Base.House = HOUSE_USSR;
|
||||||
|
//LastHouse = HOUSE_GOOD;
|
||||||
|
Fill_In_Data();
|
||||||
|
//Size_Map(-1, -1, 30, 30);
|
||||||
|
Scen.Waypoint[WAYPT_REINF] = XY_Cell(Map.MapCellX + Map.MapCellWidth / 2, Map.MapCellY + Map.MapCellHeight / 2);
|
||||||
|
Scen.Waypoint[WAYPT_HOME] = XY_Cell(Map.MapCellX + Map.MapCellWidth / 2, Map.MapCellY + Map.MapCellHeight / 2);
|
||||||
|
// (*this)[TacticalCoord].IsWaypoint = 1;
|
||||||
|
Map.Flag_Cell(Coord_Cell(Map.TacticalCoord));
|
||||||
|
Map.Set_Tactical_Position(Cell_Coord(Scen.Waypoint[WAYPT_HOME] - (MAP_CELL_W * 4 * RESFACTOR) - (5 * RESFACTOR)));
|
||||||
|
Go_Editor(true);
|
||||||
|
process = false;
|
||||||
|
Debug_SkipBriefing = true;
|
||||||
|
#else
|
||||||
Theme.Fade_Out();
|
Theme.Fade_Out();
|
||||||
|
|
||||||
if (Debug_Flag) {
|
if (Debug_Flag) {
|
||||||
@@ -1313,7 +1341,8 @@ bool Select_Game(bool fade)
|
|||||||
display = true;
|
display = true;
|
||||||
fade = true;
|
fade = true;
|
||||||
selection = SEL_NONE;
|
selection = SEL_NONE;
|
||||||
|
#endif
|
||||||
|
// jmarshall end
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1594,6 +1594,9 @@ void MapEditClass::Main_Menu(void)
|
|||||||
Show_Mouse();
|
Show_Mouse();
|
||||||
|
|
||||||
if (UnknownKey==KN_ESC || g_globalKeyNumType == KN_RMOUSE) {
|
if (UnknownKey==KN_ESC || g_globalKeyNumType == KN_RMOUSE) {
|
||||||
|
// jmarshall - consume the RMOUSE DOWN so it doesn't bring up the context menu again.
|
||||||
|
Buttons->Input();
|
||||||
|
// jmarshall end
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ void ImGui_Placement_Editor(void) {
|
|||||||
ImGuiStyle& style = ImGui::GetStyle();
|
ImGuiStyle& style = ImGui::GetStyle();
|
||||||
style.FramePadding = ImVec2(0, 0);
|
style.FramePadding = ImVec2(0, 0);
|
||||||
ImGui::SetNextWindowSize(ImVec2(480, 220));
|
ImGui::SetNextWindowSize(ImVec2(480, 220));
|
||||||
ImGui::SetNextWindowPos(ImVec2(0, 150));
|
ImGui::SetNextWindowPos(ImVec2(0, 0));
|
||||||
ImGui::Begin("Place Object", &toolActive, ImGuiWindowFlags_AlwaysAutoResize /*| ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoBackground*/);
|
ImGui::Begin("Place Object", &toolActive, ImGuiWindowFlags_AlwaysAutoResize /*| ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoBackground*/);
|
||||||
ImGui::Columns(3, "outer", true);
|
ImGui::Columns(3, "outer", true);
|
||||||
ImGui::LabelText("Test", "Object Name");
|
ImGui::LabelText("Test", "Object Name");
|
||||||
@@ -429,8 +429,6 @@ int MapEditClass::Placement_Dialog(void)
|
|||||||
g_globalKeyFlags = 0;
|
g_globalKeyFlags = 0;
|
||||||
UserInput.Process_Input();
|
UserInput.Process_Input();
|
||||||
|
|
||||||
Device_Present();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Refresh display if needed
|
** Refresh display if needed
|
||||||
*/
|
*/
|
||||||
@@ -442,9 +440,6 @@ int MapEditClass::Placement_Dialog(void)
|
|||||||
Hide_Mouse();
|
Hide_Mouse();
|
||||||
// Dialog_Box(D_DIALOG_X, D_DIALOG_Y, D_DIALOG_W, D_DIALOG_H);
|
// Dialog_Box(D_DIALOG_X, D_DIALOG_Y, D_DIALOG_W, D_DIALOG_H);
|
||||||
// Draw_Caption(TXT_PLACE_OBJECT, D_DIALOG_X, D_DIALOG_Y, D_DIALOG_W);
|
// Draw_Caption(TXT_PLACE_OBJECT, D_DIALOG_X, D_DIALOG_Y, D_DIALOG_W);
|
||||||
// jmarshall - temp render a black background here so the tool works.
|
|
||||||
LogicPage->Fill_Rect(D_DIALOG_X, D_DIALOG_Y, D_DIALOG_X + D_DIALOG_W, D_DIALOG_Y + D_DIALOG_H, 0);
|
|
||||||
// jamrshall end
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Display the current object:
|
** Display the current object:
|
||||||
@@ -459,9 +454,20 @@ int MapEditClass::Placement_Dialog(void)
|
|||||||
WindowList[WINDOW_EDITOR][WINDOWHEIGHT] = D_PICTURE_H;
|
WindowList[WINDOW_EDITOR][WINDOWHEIGHT] = D_PICTURE_H;
|
||||||
Change_Window((int)WINDOW_EDITOR);
|
Change_Window((int)WINDOW_EDITOR);
|
||||||
// Draw_Box(D_PICTURE_X, D_PICTURE_Y, D_PICTURE_W, D_PICTURE_H, BOXSTYLE_DOWN, false);
|
// Draw_Box(D_PICTURE_X, D_PICTURE_Y, D_PICTURE_W, D_PICTURE_H, BOXSTYLE_DOWN, false);
|
||||||
curobj->Display(WinW/2, WinH>>1, WINDOW_EDITOR, LastHouse);
|
//curobj->Display(WinW/2, WinH>>1, WINDOW_EDITOR, LastHouse);
|
||||||
// curobj->Display(WinW<<2, WinH>>1, WINDOW_EDITOR, LastHouse);
|
// curobj->Display(WinW<<2, WinH>>1, WINDOW_EDITOR, LastHouse);
|
||||||
|
|
||||||
|
Image_t* image = NULL;
|
||||||
|
if (curobj->Get_HDImage_Data()) {
|
||||||
|
image = curobj->Get_HDImage_Data();
|
||||||
|
GL_RenderForeGroundImage(image, 30, 100, 75, 75);
|
||||||
|
}
|
||||||
|
//else {
|
||||||
|
// image = (Image_t *)curobj->Get_Image_Data();
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Erase the grid
|
** Erase the grid
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -549,8 +549,13 @@ int Main_Menu(unsigned long )
|
|||||||
|
|
||||||
TextButtonClass multibtn(BUTTON_MULTI, TXT_MULTIPLAYER_GAME, TPF_BUTTON, d_button_x, d_button_y, d_button_w, d_button_h);
|
TextButtonClass multibtn(BUTTON_MULTI, TXT_MULTIPLAYER_GAME, TPF_BUTTON, d_button_x, d_button_y, d_button_w, d_button_h);
|
||||||
d_button_y += d_button_dy;
|
d_button_y += d_button_dy;
|
||||||
|
// jmarshall - Intro button is going to be the scenario editor button.
|
||||||
|
#ifdef SCENARIO_EDITOR
|
||||||
|
TextButtonClass introbtn(BUTTON_INTRO, "Scenario Editor", TPF_BUTTON, d_button_x, d_button_y, d_button_w, d_button_h);
|
||||||
|
#else
|
||||||
TextButtonClass introbtn(BUTTON_INTRO, TXT_INTRO, TPF_BUTTON, d_button_x, d_button_y, d_button_w, d_button_h);
|
TextButtonClass introbtn(BUTTON_INTRO, TXT_INTRO, TPF_BUTTON, d_button_x, d_button_y, d_button_w, d_button_h);
|
||||||
|
#endif
|
||||||
|
// jmarshall end
|
||||||
d_button_y += d_button_dy;
|
d_button_y += d_button_dy;
|
||||||
|
|
||||||
TextButtonClass exitbtn(BUTTON_EXIT, TXT_EXIT_GAME, TPF_BUTTON, d_button_x, d_button_y, d_button_w, d_button_h);
|
TextButtonClass exitbtn(BUTTON_EXIT, TXT_EXIT_GAME, TPF_BUTTON, d_button_x, d_button_y, d_button_w, d_button_h);
|
||||||
|
|||||||
@@ -11,11 +11,11 @@ extern uint8_t g_ColorXlat[16];
|
|||||||
void GL_SetClipRect(int x, int y, int width, int height) {
|
void GL_SetClipRect(int x, int y, int width, int height) {
|
||||||
ImVec2 mi(x, y);
|
ImVec2 mi(x, y);
|
||||||
ImVec2 ma(x + width, y + height);
|
ImVec2 ma(x + width, y + height);
|
||||||
ImGui::GetForegroundDrawList()->PushClipRect(mi, ma);
|
ImGui::GetBackgroundDrawList()->PushClipRect(mi, ma);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GL_ResetClipRect(void) {
|
void GL_ResetClipRect(void) {
|
||||||
ImGui::GetForegroundDrawList()->PopClipRect();
|
ImGui::GetBackgroundDrawList()->PopClipRect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GL_RenderImage(Image_t* image, int x, int y, int width, int height, int colorRemap, int shapeId) {
|
void GL_RenderImage(Image_t* image, int x, int y, int width, int height, int colorRemap, int shapeId) {
|
||||||
@@ -24,6 +24,22 @@ void GL_RenderImage(Image_t* image, int x, int y, int width, int height, int col
|
|||||||
|
|
||||||
if (image->numFrames > 0) {
|
if (image->numFrames > 0) {
|
||||||
if(image->HouseImages[colorRemap].image[shapeId][((int)animFrameNum) % image->numFrames] == 0)
|
if(image->HouseImages[colorRemap].image[shapeId][((int)animFrameNum) % image->numFrames] == 0)
|
||||||
|
ImGui::GetBackgroundDrawList()->AddImage((ImTextureID)image->HouseImages[colorRemap].image[shapeId][0], mi, ma);
|
||||||
|
else
|
||||||
|
ImGui::GetBackgroundDrawList()->AddImage((ImTextureID)image->HouseImages[colorRemap].image[shapeId][((int)animFrameNum) % image->numFrames], mi, ma);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ImGui::GetBackgroundDrawList()->AddImage((ImTextureID)image->HouseImages[colorRemap].image[shapeId][0], mi, ma);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void GL_RenderForeGroundImage(Image_t* image, int x, int y, int width, int height, int colorRemap, int shapeId) {
|
||||||
|
ImVec2 mi(x, y);
|
||||||
|
ImVec2 ma(x + width, y + height);
|
||||||
|
|
||||||
|
if (image->numFrames > 0) {
|
||||||
|
if (image->HouseImages[colorRemap].image[shapeId][((int)animFrameNum) % image->numFrames] == 0)
|
||||||
ImGui::GetForegroundDrawList()->AddImage((ImTextureID)image->HouseImages[colorRemap].image[shapeId][0], mi, ma);
|
ImGui::GetForegroundDrawList()->AddImage((ImTextureID)image->HouseImages[colorRemap].image[shapeId][0], mi, ma);
|
||||||
else
|
else
|
||||||
ImGui::GetForegroundDrawList()->AddImage((ImTextureID)image->HouseImages[colorRemap].image[shapeId][((int)animFrameNum) % image->numFrames], mi, ma);
|
ImGui::GetForegroundDrawList()->AddImage((ImTextureID)image->HouseImages[colorRemap].image[shapeId][((int)animFrameNum) % image->numFrames], mi, ma);
|
||||||
@@ -40,7 +56,7 @@ void GL_FillRect(int color, int x, int y, int width, int height) {
|
|||||||
float r = backbuffer_palette[(color * 3) + 0] / 255.0f;
|
float r = backbuffer_palette[(color * 3) + 0] / 255.0f;
|
||||||
float g = backbuffer_palette[(color * 3) + 1] / 255.0f;
|
float g = backbuffer_palette[(color * 3) + 1] / 255.0f;
|
||||||
float b = backbuffer_palette[(color * 3) + 2] / 255.0f;
|
float b = backbuffer_palette[(color * 3) + 2] / 255.0f;
|
||||||
ImGui::GetForegroundDrawList()->AddRectFilled(mi, ma, ImGui::ColorConvertFloat4ToU32(ImVec4(r, g, b, 1)));
|
ImGui::GetBackgroundDrawList()->AddRectFilled(mi, ma, ImGui::ColorConvertFloat4ToU32(ImVec4(r, g, b, 1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void GL_DrawText(int color, int x, int y, char* text) {
|
void GL_DrawText(int color, int x, int y, char* text) {
|
||||||
@@ -51,7 +67,7 @@ void GL_DrawText(int color, int x, int y, char* text) {
|
|||||||
float r = backbuffer_palette[(color * 3) + 0] / 255.0f;
|
float r = backbuffer_palette[(color * 3) + 0] / 255.0f;
|
||||||
float g = backbuffer_palette[(color * 3) + 1] / 255.0f;
|
float g = backbuffer_palette[(color * 3) + 1] / 255.0f;
|
||||||
float b = backbuffer_palette[(color * 3) + 2] / 255.0f;
|
float b = backbuffer_palette[(color * 3) + 2] / 255.0f;
|
||||||
ImGui::GetForegroundDrawList()->AddText(pos, ImGui::ColorConvertFloat4ToU32(ImVec4(r, g, b, 1)), text);
|
ImGui::GetBackgroundDrawList()->AddText(pos, ImGui::ColorConvertFloat4ToU32(ImVec4(r, g, b, 1)), text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GL_DrawLine(int color, int x, int y, int dx, int dy) {
|
void GL_DrawLine(int color, int x, int y, int dx, int dy) {
|
||||||
@@ -60,5 +76,5 @@ void GL_DrawLine(int color, int x, int y, int dx, int dy) {
|
|||||||
float r = backbuffer_palette[(color * 3) + 0] / 255.0f;
|
float r = backbuffer_palette[(color * 3) + 0] / 255.0f;
|
||||||
float g = backbuffer_palette[(color * 3) + 1] / 255.0f;
|
float g = backbuffer_palette[(color * 3) + 1] / 255.0f;
|
||||||
float b = backbuffer_palette[(color * 3) + 2] / 255.0f;
|
float b = backbuffer_palette[(color * 3) + 2] / 255.0f;
|
||||||
ImGui::GetForegroundDrawList()->AddLine(pos, pos2, ImGui::ColorConvertFloat4ToU32(ImVec4(r, g, b, 1)));
|
ImGui::GetBackgroundDrawList()->AddLine(pos, pos2, ImGui::ColorConvertFloat4ToU32(ImVec4(r, g, b, 1)));
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
struct Image_t;
|
struct Image_t;
|
||||||
void GL_RenderImage(Image_t* image, int x, int y, int width, int height, int colorRemap = 0, int shapeId = 0);
|
void GL_RenderImage(Image_t* image, int x, int y, int width, int height, int colorRemap = 0, int shapeId = 0);
|
||||||
|
void GL_RenderForeGroundImage(Image_t* image, int x, int y, int width, int height, int colorRemap = 0, int shapeId = 0);
|
||||||
void GL_DrawText(int color, int x, int y, char* text);
|
void GL_DrawText(int color, int x, int y, char* text);
|
||||||
void GL_FillRect(int color, int x, int y, int width, int height);
|
void GL_FillRect(int color, int x, int y, int width, int height);
|
||||||
void GL_DrawLine(int color, int x, int y, int dx, int dy);
|
void GL_DrawLine(int color, int x, int y, int dx, int dy);
|
||||||
|
|||||||
+30
-18
@@ -63,6 +63,7 @@
|
|||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#include "tcpip.h"
|
#include "tcpip.h"
|
||||||
#include "ccdde.h"
|
#include "ccdde.h"
|
||||||
|
#include "audiomix.h"
|
||||||
|
|
||||||
extern bool SpawnedFromWChat;
|
extern bool SpawnedFromWChat;
|
||||||
#endif
|
#endif
|
||||||
@@ -399,30 +400,41 @@ bool Start_Scenario(char * name, bool briefing)
|
|||||||
/*
|
/*
|
||||||
** If there's no briefing movie, restate the mission at the beginning.
|
** If there's no briefing movie, restate the mission at the beginning.
|
||||||
*/
|
*/
|
||||||
char buffer[25];
|
if (!Debug_SkipBriefing)
|
||||||
if (Scen.BriefMovie != VQ_NONE) {
|
{
|
||||||
sprintf(buffer, "%s.VQA", VQName[Scen.BriefMovie]);
|
char buffer[25];
|
||||||
}
|
if (Scen.BriefMovie != VQ_NONE) {
|
||||||
if (Session.Type == GAME_NORMAL && ( Scen.BriefMovie == VQ_NONE || !CCFileClass(buffer).Is_Available() ) ) {
|
sprintf(buffer, "%s.VQA", VQName[Scen.BriefMovie]);
|
||||||
/*
|
}
|
||||||
** Make sure the mouse is visible before showing the restatement.
|
if (Session.Type == GAME_NORMAL && (Scen.BriefMovie == VQ_NONE || !CCFileClass(buffer).Is_Available())) {
|
||||||
*/
|
/*
|
||||||
while(Get_Mouse_State()) {
|
** Make sure the mouse is visible before showing the restatement.
|
||||||
Show_Mouse();
|
*/
|
||||||
|
while (Get_Mouse_State()) {
|
||||||
|
Show_Mouse();
|
||||||
|
}
|
||||||
|
Restate_Mission(Scen.ScenarioName, TXT_OK, TXT_NONE);
|
||||||
}
|
}
|
||||||
Restate_Mission(Scen.ScenarioName, TXT_OK, TXT_NONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (briefing) {
|
if (briefing) {
|
||||||
Hide_Mouse();
|
Hide_Mouse();
|
||||||
VisiblePage.Clear();
|
VisiblePage.Clear();
|
||||||
Show_Mouse();
|
Show_Mouse();
|
||||||
Play_Movie(Scen.ActionMovie, Scen.TransitTheme);
|
Play_Movie(Scen.ActionMovie, Scen.TransitTheme);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Scen.TransitTheme == THEME_NONE) {
|
if (Scen.TransitTheme == THEME_NONE) {
|
||||||
Theme.Queue_Song(THEME_FIRST);
|
Theme.Queue_Song(THEME_FIRST);
|
||||||
}
|
}
|
||||||
|
// jmarshall
|
||||||
|
// If we are skipping the briefing, pausing the music(assuming in editor mode).
|
||||||
|
if (Debug_SkipBriefing) {
|
||||||
|
AudMix_SetMusicState(false);
|
||||||
|
}
|
||||||
|
// jmarshall end
|
||||||
|
|
||||||
|
Debug_SkipBriefing = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Set the options values, since the palette has been initialized by Read_Scenario
|
** Set the options values, since the palette has been initialized by Read_Scenario
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
#include "FUNCTION.H"
|
#include "FUNCTION.H"
|
||||||
#include "TEXCACHE.H"
|
#include "TEXCACHE.H"
|
||||||
|
|
||||||
#define CACHE_HEADER_FILENAME "cache/cache_header_v1.vhdr"
|
#define CACHE_HEADER_FILENAME "cache/cache_header_v2.vhdr"
|
||||||
#define CACHE_DATA_FILERNAME "cache/cache_data_v1.vdata"
|
#define CACHE_DATA_FILERNAME "cache/cache_data_v2.vdata"
|
||||||
|
|
||||||
TexCache texCache;
|
TexCache texCache;
|
||||||
|
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ Image_t* Load_StampHD(int theater, const char* iconName, const void* icondata) {
|
|||||||
char filename[2048];
|
char filename[2048];
|
||||||
Image_t* image = NULL;
|
Image_t* image = NULL;
|
||||||
|
|
||||||
IconControlType* tileset = (IconControlType*)icondata;
|
IconControlType* tileset = (IconControlType*)icondata;
|
||||||
|
|
||||||
if (!tileset) {
|
if (!tileset) {
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -222,6 +222,13 @@ Image_t* Load_StampHD(int theater, const char* iconName, const void* icondata) {
|
|||||||
COM_SetExtension(filename, sizeof(filename), ".dds");
|
COM_SetExtension(filename, sizeof(filename), ".dds");
|
||||||
|
|
||||||
if (image == NULL) {
|
if (image == NULL) {
|
||||||
|
// If the image is already loaded, then we are done.
|
||||||
|
image = Find_Image(filename);
|
||||||
|
if (image) {
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load the initial terrain image.
|
||||||
image = Image_LoadImage(filename);
|
image = Image_LoadImage(filename);
|
||||||
|
|
||||||
if (image != NULL && i != 0) {
|
if (image != NULL && i != 0) {
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
class MapEditClass;
|
class MapEditClass;
|
||||||
class HouseClass;
|
class HouseClass;
|
||||||
class WeaponTypeClass;
|
class WeaponTypeClass;
|
||||||
|
struct Image_t;
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
** This is the abstract type class. It holds information common to all
|
** This is the abstract type class. It holds information common to all
|
||||||
@@ -815,6 +816,7 @@ class BuildingTypeClass : public TechnoTypeClass {
|
|||||||
** Special overlay for the weapons factory.
|
** Special overlay for the weapons factory.
|
||||||
*/
|
*/
|
||||||
static void const * WarFactoryOverlay;
|
static void const * WarFactoryOverlay;
|
||||||
|
static Image_t* WarFactoryHDOverlay;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@@ -839,6 +841,7 @@ class BuildingTypeClass : public TechnoTypeClass {
|
|||||||
void const * BuildupData;
|
void const * BuildupData;
|
||||||
|
|
||||||
void Init_Anim(BStateType state, int start, int count, int rate) const;
|
void Init_Anim(BStateType state, int start, int count, int rate) const;
|
||||||
|
static Image_t* LoadHDImage(const char* fullname, int &numHDShapes);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -764,6 +764,9 @@ void ChronalVortexClass::Zap_Target (void)
|
|||||||
void ChronalVortexClass::Coordinate_Remap ( GraphicViewPortClass *inbuffer, int x, int y, int width, int height, unsigned char *remap_table)
|
void ChronalVortexClass::Coordinate_Remap ( GraphicViewPortClass *inbuffer, int x, int y, int width, int height, unsigned char *remap_table)
|
||||||
{
|
{
|
||||||
unsigned char getx,gety, remap_color, pixel_color;
|
unsigned char getx,gety, remap_color, pixel_color;
|
||||||
|
// jmarshall - todo fix ChronalVortexClass
|
||||||
|
return;
|
||||||
|
// jmarshall end
|
||||||
|
|
||||||
|
|
||||||
BufferClass destbuf (width * height);
|
BufferClass destbuf (width * height);
|
||||||
|
|||||||
+26
-13
@@ -158,13 +158,25 @@ static bool Image_LoadFromCache(Image_t* image, const char* name, int houseid, i
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool Image_loadHDImage(Image_t *image, const char* name, int houseid, int animid, int frameId, int64_t hash) {
|
static bool Image_loadHDImage(Image_t *image, const char* name, int houseid, int animid, int frameId, int64_t hash) {
|
||||||
|
// Don't load the image if its already loaded.
|
||||||
|
if (houseid == -1) {
|
||||||
|
if (image->HouseImages[0].image[animid][frameId] != 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (image->HouseImages[houseid].image[animid][frameId] != 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char* generatedName = Image_GetGeneratedName(image, name, houseid, animid, frameId, hash);
|
const char* generatedName = Image_GetGeneratedName(image, name, houseid, animid, frameId, hash);
|
||||||
hash = generateHashValue(generatedName, strlen(generatedName));
|
hash = generateHashValue(generatedName, strlen(generatedName));
|
||||||
|
|
||||||
// Check to see if we can load a generated image first.
|
// Check to see if we can load a generated image first.
|
||||||
// We only generate images that need a houseid
|
// We only generate images that need a houseid
|
||||||
if (houseid >= 0) {
|
{
|
||||||
if (Image_LoadFromCache(image, generatedName, houseid, animid, frameId, hash)) {
|
if (Image_LoadFromCache(image, generatedName, houseid, animid, frameId, hash)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -179,10 +191,8 @@ static bool Image_loadHDImage(Image_t *image, const char* name, int houseid, int
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool swapBGR = false;
|
|
||||||
if (strstr(name, ".TGA") || strstr(name, ".tga")) {
|
if (strstr(name, ".TGA") || strstr(name, ".tga")) {
|
||||||
iluFlipImage();
|
iluFlipImage();
|
||||||
swapBGR = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ILuint Width, Height, Bpp;
|
ILuint Width, Height, Bpp;
|
||||||
@@ -201,18 +211,20 @@ static bool Image_loadHDImage(Image_t *image, const char* name, int houseid, int
|
|||||||
RenderTeamPalette(&Data[i * 4], *houseColors[houseid]);
|
RenderTeamPalette(&Data[i * 4], *houseColors[houseid]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (Bpp == 4) {
|
||||||
|
for (int i = 0; i < Width * Height; i++) {
|
||||||
|
byte b = Data[(i * 4) + 2];
|
||||||
|
Data[(i * 4) + 2] = Data[(i * 4) + 0];
|
||||||
|
Data[(i * 4) + 0] = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GLuint texture;
|
GLuint texture;
|
||||||
glGenTextures(1, &texture);
|
glGenTextures(1, &texture);
|
||||||
glBindTexture(GL_TEXTURE_2D, texture);
|
glBindTexture(GL_TEXTURE_2D, texture);
|
||||||
|
|
||||||
if (Bpp == 4) {
|
if (Bpp == 4) {
|
||||||
if (swapBGR) {
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Width, Height, 0, GL_BGRA, GL_UNSIGNED_BYTE, Data);
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Width, Height, 0, GL_BGRA, GL_UNSIGNED_BYTE, Data);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Width, Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, Data);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (Bpp == 3) {
|
else if (Bpp == 3) {
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Width, Height, 0, GL_RGB, GL_UNSIGNED_BYTE, Data);
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Width, Height, 0, GL_RGB, GL_UNSIGNED_BYTE, Data);
|
||||||
@@ -240,7 +252,7 @@ static bool Image_loadHDImage(Image_t *image, const char* name, int houseid, int
|
|||||||
//image->buffer[houseid][animid] = new unsigned char[Width * Height * Bpp];
|
//image->buffer[houseid][animid] = new unsigned char[Width * Height * Bpp];
|
||||||
//memcpy(image->buffer[houseid][animid], Data, Width * Height * Bpp);
|
//memcpy(image->buffer[houseid][animid], Data, Width * Height * Bpp);
|
||||||
|
|
||||||
if (Bpp == 4 && houseid >= 0) {
|
if (Bpp == 4) {
|
||||||
texCache.AddImage(generatedName, Width, Height, Bpp, Data);
|
texCache.AddImage(generatedName, Width, Height, Bpp, Data);
|
||||||
Console_Printf("Writing %s to cache %s\n", image->name, name);
|
Console_Printf("Writing %s to cache %s\n", image->name, name);
|
||||||
Sleep(0);
|
Sleep(0);
|
||||||
@@ -574,8 +586,9 @@ void Device_Present(void) {
|
|||||||
//ImGui::End();
|
//ImGui::End();
|
||||||
// jmarshall end
|
// jmarshall end
|
||||||
|
|
||||||
if (Imgui_Dialog_Function) {
|
if (Imgui_Dialog_Function) {
|
||||||
Imgui_Dialog_Function();
|
Map.Render();
|
||||||
|
Imgui_Dialog_Function();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (renderConsole) {
|
if (renderConsole) {
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ void UserInputClass::Process_Input(KeyNumType& key, int& flags)
|
|||||||
Keyboard->MouseQX = Mouse.X;
|
Keyboard->MouseQX = Mouse.X;
|
||||||
Keyboard->MouseQY = Mouse.Y;
|
Keyboard->MouseQY = Mouse.Y;
|
||||||
|
|
||||||
|
flags = 0;
|
||||||
|
|
||||||
static SDL_Event event;
|
static SDL_Event event;
|
||||||
memset(&event, 0, sizeof(SDL_Event));
|
memset(&event, 0, sizeof(SDL_Event));
|
||||||
|
|
||||||
@@ -51,7 +53,7 @@ void UserInputClass::Process_Input(KeyNumType& key, int& flags)
|
|||||||
Mouse.Button_Left == MouseButtonState::MOUSE_BUTTON_DOWN;
|
Mouse.Button_Left == MouseButtonState::MOUSE_BUTTON_DOWN;
|
||||||
|
|
||||||
key = KN_LMOUSE;
|
key = KN_LMOUSE;
|
||||||
flags = GadgetClass::LEFTPRESS;
|
flags |= GadgetClass::LEFTPRESS;
|
||||||
|
|
||||||
Keyboard->Put_Element(KN_LMOUSE);
|
Keyboard->Put_Element(KN_LMOUSE);
|
||||||
|
|
||||||
@@ -64,7 +66,7 @@ void UserInputClass::Process_Input(KeyNumType& key, int& flags)
|
|||||||
Keyboard->Put_Element(KN_RMOUSE);
|
Keyboard->Put_Element(KN_RMOUSE);
|
||||||
|
|
||||||
key = KN_RMOUSE;
|
key = KN_RMOUSE;
|
||||||
flags = GadgetClass::RIGHTPRESS;
|
flags |= GadgetClass::RIGHTPRESS;
|
||||||
|
|
||||||
numFramesLMouse = 0;
|
numFramesLMouse = 0;
|
||||||
}
|
}
|
||||||
@@ -74,13 +76,13 @@ void UserInputClass::Process_Input(KeyNumType& key, int& flags)
|
|||||||
if (event.button.button == SDL_BUTTON_LEFT) {
|
if (event.button.button == SDL_BUTTON_LEFT) {
|
||||||
Mouse.Button_Left == MouseButtonState::MOUSE_BUTTON_RELEASE;
|
Mouse.Button_Left == MouseButtonState::MOUSE_BUTTON_RELEASE;
|
||||||
|
|
||||||
flags = GadgetClass::LEFTRELEASE;
|
flags |= GadgetClass::LEFTRELEASE;
|
||||||
numFramesLMouse = 0;
|
numFramesLMouse = 0;
|
||||||
}
|
}
|
||||||
else if (event.button.button == SDL_BUTTON_RIGHT) {
|
else if (event.button.button == SDL_BUTTON_RIGHT) {
|
||||||
Mouse.Button_Right == MouseButtonState::MOUSE_BUTTON_RELEASE;
|
Mouse.Button_Right == MouseButtonState::MOUSE_BUTTON_RELEASE;
|
||||||
|
|
||||||
flags = GadgetClass::RIGHTRELEASE;
|
flags |= GadgetClass::RIGHTRELEASE;
|
||||||
numFramesLMouse = 0;
|
numFramesLMouse = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user