diff --git a/SCU01EA.INI b/SCU01EA.INI new file mode 100644 index 0000000..fa6f4b0 --- /dev/null +++ b/SCU01EA.INI @@ -0,0 +1,190 @@ +[General] +ChronoTechLevel=12 +ParaTech=5 +ParabombTech=8 +SpyPlaneTech=5 +GPSTechLevel=10 + +[HBOX] +Power=-10 + +[PBOX] +Power=-10 + +[AGUN] +Power=-40 + +[FTUR] +Power=-40 + +[MRJ] +TechLevel=15 +Owner=soviet + +[MGG] +TechLevel=15 + +[MCV] +TechLevel=15 + +[LST] +TechLevel=1 + +[DOG] +TechLevel=3 + +[E4] +TechLevel=6 + +[THF] +TechLevel=15 + +[E7] +Prerequisite=atek +TechLevel=15 +Owner=allies + +[YAK] +TechLevel=1 + +[TRAN] +TechLevel=15 +Owner=allies,soviet + +[HELI] +TechLevel=10 + +[HIND] +TechLevel=10 + +[IRON] +TechLevel=15 + +[ATEK] +TechLevel=10 + +[PDOX] +TechLevel=15 + +[SPEN] +TechLevel=5 + +[HPAD] +TechLevel=10 + +[MSLO] +TechLevel=15 +Owner=soviet + +[AFLD] +TechLevel=4 + +[KENN] +TechLevel=2 + +[FACF] +TechLevel=15 + +[WEAF] +TechLevel=15 + +[SYRF] +TechLevel=15 + +[DOMF] +TechLevel=15 + +[Italy] +MaxUnit=150 +MaxInfantry=150 +MaxBuilding=150 +MaxVessel=20 +Allies=Special + +[Basic] +Name=In the thick of it +Intro= +Brief= +Win= +Lose= +Action= +Player=USSR +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 + +[Greece] +PlayerControl=yes + +[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 + +[TERRAIN] +8638=T01 +8778=T01 +7989=T01 +6453=T01 +8008=T01 +8399=T01 +7503=T01 +8631=T01 +9781=T01 +8883=T01 +9147=T03 +9043=T03 +8280=T03 +6998=T03 +7519=TC04 +8923=TC05 + +[UNITS] +0=Spain,4TNK,256,9288,0,Guard,None + +[STRUCTURES] +0=USSR,IRON,256,7115,0,None,0,0 +1=USSR,WEAP,256,6978,0,None,0,0 +2=USSR,FACT,256,7355,0,None,0,0 +3=USSR,PROC,256,7873,0,None,0,0 + +[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=pInr5IMV1Wll5YhV9IYdIxGdJ24= + diff --git a/Work/Tilesets/Snow/Build.bat b/Work/Tilesets/Snow/Build.bat new file mode 100644 index 0000000..65a308f --- /dev/null +++ b/Work/Tilesets/Snow/Build.bat @@ -0,0 +1,4 @@ +set PATH="C:\Program Files\ImageMagick-7.0.10-Q16-HDRI" + +magick.exe convert sno1.png -alpha set -virtual-pixel transparent +distort Affine "0,512 0,0 0,0 -87,-50 512,512 87,-50" -background none -compose plus -bordercolor black -compose over -border 5x2 sno1_iso.png +pause \ No newline at end of file diff --git a/Work/Tilesets/Snow/sno1.png b/Work/Tilesets/Snow/sno1.png new file mode 100644 index 0000000..a0d60f6 Binary files /dev/null and b/Work/Tilesets/Snow/sno1.png differ diff --git a/Work/Tilesets/Snow/sno1_iso.png b/Work/Tilesets/Snow/sno1_iso.png new file mode 100644 index 0000000..6f7dac3 Binary files /dev/null and b/Work/Tilesets/Snow/sno1_iso.png differ diff --git a/code/redalert/display.cpp b/code/redalert/display.cpp index 356b22c..8337835 100644 --- a/code/redalert/display.cpp +++ b/code/redalert/display.cpp @@ -569,10 +569,10 @@ short const * DisplayClass::Text_Overlap_List(char const * text, int x, int y) c void DisplayClass::Set_View_Dimensions(int x, int y, int width, int height) { if (width == -1) width = SeenBuff.Get_Width(); - TacLeptonWidth = Pixel_To_Lepton( width - x); + TacLeptonWidth = Pixel_To_Lepton( width - x) * 2; if (height == -1) height = SeenBuff.Get_Height(); - TacLeptonHeight = Pixel_To_Lepton(height - y); + TacLeptonHeight = Pixel_To_Lepton(height - y) * 2; /* ** Adjust the tactical cell if it is now in an invalid position @@ -1756,6 +1756,17 @@ bool DisplayClass::Coord_To_Pixel(COORDINATE coord, int &x, int &y) const if ((int)yoff <= TacLeptonHeight + EDGE_ZONE*2) { x = Lepton_To_Pixel(xoff)-CELL_PIXEL_W*2; y = Lepton_To_Pixel(yoff)-CELL_PIXEL_H*2; +// jmarshall - isometric + int tileWidth = CELL_PIXEL_W; + int tileHeight = CELL_PIXEL_H; + int sx = (x / CELL_PIXEL_W) * (tileWidth / 2) - (y / CELL_PIXEL_W) * (tileWidth / 2); + int sy = (x / CELL_PIXEL_W) * (tileHeight / 2) + (y / CELL_PIXEL_W) * (tileHeight / 2); + + x = sx + (CELL_PIXEL_W / 2); + y = sy + (CELL_PIXEL_W / 2); + + x = x + (ScreenWidth / 2); +// jmarshall end return(true); } } @@ -2344,7 +2355,7 @@ void DisplayClass::Redraw_Icons(void) /* ** Only cells flagged to be redraw are examined. */ - if (In_View(cell) && Is_Cell_Flagged(cell)) { + { int xpixel; int ypixel; @@ -2403,7 +2414,7 @@ void DisplayClass::Redraw_OIcons(void) cellptr->Draw_It(xpixel, ypixel, true); } } - } + } } } } diff --git a/code/redalert/display.h b/code/redalert/display.h index f47315a..7fbca54 100644 --- a/code/redalert/display.h +++ b/code/redalert/display.h @@ -40,9 +40,11 @@ struct Image_t; -#define ICON_PIXEL_W 24 +// jmarshall - isometric +#define ICON_PIXEL_W 48 #define ICON_PIXEL_H 24 -#define ICON_LEPTON_W 256 +// jmarshall end +#define ICON_LEPTON_W 512 #define ICON_LEPTON_H 256 #define CELL_PIXEL_W ICON_PIXEL_W #define CELL_PIXEL_H ICON_PIXEL_H diff --git a/code/redalert/tileset.cpp b/code/redalert/tileset.cpp index b24846d..a596563 100644 --- a/code/redalert/tileset.cpp +++ b/code/redalert/tileset.cpp @@ -219,7 +219,7 @@ Image_t* Load_StampHD(int theater, const char* iconName, const void* icondata) { { const char* tileEntryName = Tileset_FindHDTexture(theater, fixedIconName, i, d); sprintf(filename, "DATA/ART/TEXTURES/SRGB/RED_ALERT/TERRAIN/%s/%s", Theaters[theater].Name, tileEntryName); - COM_SetExtension(filename, sizeof(filename), ".dds"); + //COM_SetExtension(filename, sizeof(filename), ".dds"); if (image == NULL) { // If the image is already loaded, then we are done. @@ -330,8 +330,8 @@ void __cdecl Buffer_Draw_Stamp_Clip2(GraphicViewPortClass& viewport, const void uint8_t* MapPtr = (uint8_t * )iconImage->IconMapPtr; int icon_index = MapPtr != nullptr ? MapPtr[icon] : icon; { - int blit_height = iconImage->renderheight[0]; - int blit_width = iconImage->renderwidth[0]; + int blit_height = CELL_PIXEL_H; + int blit_width = CELL_PIXEL_W; int width = left + right; int xstart = left + x; diff --git a/data/art/textures/srgb/red_alert/terrain/snow/clear1.sno/clear1.0012.png b/data/art/textures/srgb/red_alert/terrain/snow/clear1.sno/clear1.0012.png new file mode 100644 index 0000000..c7c5442 Binary files /dev/null and b/data/art/textures/srgb/red_alert/terrain/snow/clear1.sno/clear1.0012.png differ diff --git a/data/xml/tilesets/RA_TERRAIN_SNOW.XML b/data/xml/tilesets/RA_TERRAIN_SNOW.XML new file mode 100644 index 0000000..d2f52ce --- /dev/null +++ b/data/xml/tilesets/RA_TERRAIN_SNOW.XML @@ -0,0 +1,228 @@ + + + + Red_Alert\Terrain\Snow + + + + CLEAR1 + 0 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 1 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 2 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 3 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 4 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 5 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 6 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 7 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 8 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 9 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 10 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 11 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 12 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 13 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 14 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 15 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 16 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 17 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 18 + + + + clear1.sno\clear1.0012.png + + + + + + CLEAR1 + 19 + + + + clear1.sno\clear1.0012.png + + + + + + \ No newline at end of file