Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package slade for openSUSE:Factory checked in at 2021-06-09 21:52:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/slade (Old) and /work/SRC/openSUSE:Factory/.slade.new.32437 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "slade" Wed Jun 9 21:52:34 2021 rev:13 rq:898377 version:3.1.13 Changes: -------- --- /work/SRC/openSUSE:Factory/slade/slade.changes 2021-04-29 22:53:26.769879266 +0200 +++ /work/SRC/openSUSE:Factory/.slade.new.32437/slade.changes 2021-06-09 21:52:55.586541513 +0200 @@ -1,0 +2,8 @@ +Tue Jun 1 11:00:31 UTC 2021 - Jan Engelhardt <[email protected]> + +- Update to release 3.1.13 + * Updated ZDoom, MAPINFO and ACS language definitions + * Added extra UDMF flags + * Fixed an issue with the "optional" keyword in TEXTURES + +------------------------------------------------------------------- Old: ---- SLADE-3.1.12a.tar.gz New: ---- 3.1.13.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ slade.spec ++++++ --- /var/tmp/diff_new_pack.vzHvEO/_old 2021-06-09 21:52:56.150542518 +0200 +++ /var/tmp/diff_new_pack.vzHvEO/_new 2021-06-09 21:52:56.154542525 +0200 @@ -17,13 +17,13 @@ Name: slade -Version: 3.1.12a +Version: 3.1.13 Release: 0 Summary: An editor for DOOM maps and WAD/PK3 archives License: GPL-2.0-or-later Group: Amusements/Games/3D/Shoot URL: https://github.com/sirjuddington/SLADE -Source: %URL/archive/%version.tar.gz#/SLADE-%version.tar.gz +Source: https://github.com/sirjuddington/SLADE/archive/refs/tags/%version.tar.gz Patch1: basepk3.diff Patch2: wx.diff Patch3: clzma.diff ++++++ SLADE-3.1.12a.tar.gz -> 3.1.13.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/Info.plist new/SLADE-3.1.13/Info.plist --- old/SLADE-3.1.12a/Info.plist 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/Info.plist 2021-06-01 06:32:31.000000000 +0200 @@ -17,7 +17,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>3.1.12</string> + <string>3.1.13</string> <key>CFBundleSignature</key> <string>SLA3</string> <key>NSPrincipalClass</key> @@ -25,7 +25,7 @@ <key>NSHighResolutionCapable</key> <true/> <key>CFBundleVersion</key> - <string>3.1.12</string> + <string>3.1.13</string> <key>CFBundleDocumentTypes</key> <array> <dict> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/build/msvc/SLADE.rc new/SLADE-3.1.13/build/msvc/SLADE.rc --- old/SLADE-3.1.12a/build/msvc/SLADE.rc 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/build/msvc/SLADE.rc 2021-06-01 06:32:31.000000000 +0200 @@ -7,16 +7,16 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#include "winres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// English (Australia) resources +// English (United States) resources -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENA) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_AUS +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #ifdef APSTUDIO_INVOKED @@ -32,7 +32,7 @@ 2 TEXTINCLUDE BEGIN - "#include ""afxres.h""\r\n" + "#include ""winres.h""\r\n" "\0" END @@ -47,34 +47,12 @@ ///////////////////////////////////////////////////////////////////////////// // -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON1 ICON "slade.ico" - -// wxWidgets cursors not available by default on Windows -// -//WXCURSOR_HAND CURSOR DISCARDABLE "wx/msw/hand.cur" -//WXCURSOR_BULLSEYE CURSOR DISCARDABLE "wx/msw/bullseye.cur" -WXCURSOR_PENCIL CURSOR DISCARDABLE "wx/msw/pencil.cur" -//WXCURSOR_MAGNIFIER CURSOR DISCARDABLE "wx/msw/magnif1.cur" -//WXCURSOR_ROLLER CURSOR DISCARDABLE "wx/msw/roller.cur" -//WXCURSOR_PBRUSH CURSOR DISCARDABLE "wx/msw/pbrush.cur" -//WXCURSOR_PLEFT CURSOR DISCARDABLE "wx/msw/pntleft.cur" -//WXCURSOR_PRIGHT CURSOR DISCARDABLE "wx/msw/pntright.cur" -//WXCURSOR_BLANK CURSOR DISCARDABLE "wx/msw/blank.cur" -//WXCURSOR_CROSS CURSOR DISCARDABLE "wx/msw/cross.cur" - -///////////////////////////////////////////////////////////////////////////// -// // Version // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,1,12 - PRODUCTVERSION 3,1,12 + FILEVERSION 3,1,13 + PRODUCTVERSION 3,1,13 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -90,12 +68,12 @@ BLOCK "0c0904b0" BEGIN VALUE "FileDescription", "SLADE" - VALUE "FileVersion", "3.1.12" + VALUE "FileVersion", "3.1.13" VALUE "InternalName", "SLADE.exe" - VALUE "LegalCopyright", "Copyright (C) 2020" + VALUE "LegalCopyright", "Copyright (C) 2021" VALUE "OriginalFilename", "SLADE.exe" VALUE "ProductName", "SLADE" - VALUE "ProductVersion", "3.1.12" + VALUE "ProductVersion", "3.1.13" END END BLOCK "VarFileInfo" @@ -104,7 +82,17 @@ END END -#endif // English (Australia) resources + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON "slade.ico" + +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/dist/makebuild.ps1 new/SLADE-3.1.13/dist/makebuild.ps1 --- old/SLADE-3.1.12a/dist/makebuild.ps1 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/dist/makebuild.ps1 2021-06-01 06:32:31.000000000 +0200 @@ -1,4 +1,4 @@ -$version = "3.1.12" +$version = "3.1.13" $rev_short = Invoke-Expression "git.exe rev-parse --short HEAD" # Check for 7-zip install @@ -24,11 +24,22 @@ # Build SLADE if ($buildbinaries.ToLower() -eq "y") { + # Find devenv path (community or professional) $devenvpath19 = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.com" -# $devenvpath17 = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.com" - & $devenvpath19 (resolve-path ..\build\msvc\SLADE.sln).Path /rebuild "Release - vcpkg, static|Win32" /project SLADE.vcxproj - & $devenvpath19 (resolve-path ..\build\msvc\SLADE.sln).Path /rebuild "Release - vcpkg, static|x64" /project SLADE.vcxproj -# & $devenvpath17 (resolve-path ..\build\msvc\SLADE.sln).Path /rebuild "Release - WinXP|Win32" /project SLADE.vcxproj + if (-not (Test-Path $devenvpath19)) + { + $devenvpath19 = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.com" + } + if (-not (Test-Path $devenvpath19)) + { + Write-Host "`nCould not find Visual Studio 2019 path" -ForegroundColor Red + Exit-PSSession + } + else + { + & $devenvpath19 (resolve-path ..\build\msvc\SLADE.sln).Path /rebuild "Release - vcpkg, static|Win32" /project SLADE.vcxproj + & $devenvpath19 (resolve-path ..\build\msvc\SLADE.sln).Path /rebuild "Release - vcpkg, static|x64" /project SLADE.vcxproj + } } # Determine release directory + platforms diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/dist/res/config/languages/acs.txt new/SLADE-3.1.13/dist/res/config/languages/acs.txt --- old/SLADE-3.1.12a/dist/res/config/languages/acs.txt 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/dist/res/config/languages/acs.txt 2021-06-01 06:32:31.000000000 +0200 @@ -160,7 +160,7 @@ keywords = { function, enter, respawn, death, lightning, unloading, disconnect, kill, fixed, global, net, import, libdefine, library, nocompact, nowadauthor, - EncryptStrings, static, wadauthor, region, endregion, + EncryptStrings, static, wadauthor, region, endregion, reopen, // Skulltag script types BlueReturn, RedReturn, WhiteReturn, Pickup, ClientSide @@ -207,7 +207,7 @@ BT_ATTACK, BT_USE, BT_JUMP, BT_CROUCH, BT_TURN180, BT_ALTATTACK, BT_RELOAD, BT_ZOOM, BT_SPEED, BT_STRAFE, BT_MOVERIGHT, BT_MOVELEFT, BT_BACK, BT_FORWARD, BT_RIGHT, BT_LEFT, BT_LOOKUP, BT_LOOKDOWN, BT_MOVEUP, BT_MOVEDOWN, - BT_SHOWSCORES, BT_USER1, BT_USER2, BT_USER3, BT_USER4, + BT_SHOWSCORES, BT_USER1, BT_USER2, BT_USER3, BT_USER4, BT_RUN, CR_UNTRANSLATED, CR_BRICK, CR_TAN, CR_GRAY, CR_GREY, CR_GREEN, CR_BROWN, CR_GOLD, CR_RED, CR_BLUE, CR_ORANGE, CR_WHITE, CR_YELLOW, CR_BLACK, @@ -377,6 +377,8 @@ SECF_PUSH, SECF_SILENTMOVE, SECF_DMGTERRAINFX, SECF_DMGENDGODMODE, SECF_DMGENDLEVEL, SECF_DMGHAZARD, + SECPART_3D, SECPART_Ceiling, SECPART_Floor, + BLOCKF_CREATURES, BLOCKF_MONSTERS, BLOCKF_PLAYERS, BLOCKF_FLOATERS, BLOCKF_HITSCAN, BLOCKF_PROJECTILES, BLOCKF_EVERYTHING, BLOCKF_RAILING, BLOCKF_USE, BLOCKF_SIGHT, BLOCKF_SOUND, @@ -440,7 +442,15 @@ // CheckProximity flags CPXF_ANCESTOR, CPXF_CHECKSIGHT, CPXF_CLOSEST, CPXF_COUNTDEAD, CPXF_DEADONLY, CPXF_EXACT, CPXF_FARTHEST, - CPXF_LESSOREQUAL, CPXF_NOZ, CPXF_SETMASTER, CPXF_SETONPTR, CPXF_SETTARGET, CPXF_SETTRACER + CPXF_LESSOREQUAL, CPXF_NOZ, CPXF_SETMASTER, CPXF_SETONPTR, CPXF_SETTARGET, CPXF_SETTRACER, + + // Line_SetAutomapFlags + AMLF_Secret, AMLF_DontDraw, AMLF_Mapped, AMLF_Revealed, + + // Line_SetAutomapStyle + AMLS_Default, AMLS_OneSided, AMLS_TwoSided, AMLS_FloorDiff, AMLS_CeilingDiff, AMLS_ExtraFloor, + AMLS_Special, AMLS_Secret, AMLS_NotSeen, AMLS_Locked, AMLS_IntraTeleport, AMLS_InterTeleport, + AMLS_UnexploredSecret, AMLS_Portal } functions @@ -581,7 +591,10 @@ Light_StrobeDoom = "int tag, int u-tics, int l-tics"; Line_AlignCeiling = "int lineid, int side"; Line_AlignFloor = "int lineid, int side"; + Line_SetAutomapFlags = "int lineid, int setflags, int clearflags"; + Line_SetAutomapStyle = "int lineid, int style"; Line_SetBlocking = "int lineid, int setflags, int clearflags"; + Line_SetHealth = "int lineid, int health"; Line_SetPortalTarget = "int sourceline, int targetline"; Line_SetTextureOffset = "int id, int x, int y, int side, int flags"; Line_SetTextureScale = "int id, int x, int y, int side, int flags"; @@ -635,6 +648,7 @@ Sector_SetFloorScale2 = "int tag, int x-factor, int y-factor"; Sector_SetFriction = "int tag, int amount"; Sector_SetGravity = "int tag, int intpart, int fracpart"; + Sector_SetHealth = "int tag, int part, int health"; Sector_SetLink = "int controltag, int linktag, int floor/ceiling, int movetype"; Sector_SetPlaneReflection = "int tag, int floor, int ceiling"; Sector_SetRotation = "int tag, int floor-angle, int ceiling-angle"; @@ -767,6 +781,7 @@ GetCVarString = "str cvarname"; GetLevelInfo = "int levelinfo"; GetLineActivation = "int lineid"; + GetLineHealth = "int lineid"; GetLineRowOffset; GetLineUDMFFixed = "int lineid, str key"; GetLineUDMFInt = "int lineid, str key"; @@ -781,6 +796,7 @@ GetScreenWidth; GetSectorCeilingZ = "int tag, int x, int y"; GetSectorFloorZ = "int tag, int x, int y"; + GetSectorHealth = "int tag, int part"; GetSectorLightLevel = "int tag"; GetSectorUDMFFixed = "int tag, string key"; GetSectorUDMFInt = "int tag, string key"; @@ -816,7 +832,7 @@ PlayerIsBot = "int playernumber"; PlayerNumber; PlayMovie = "str moviename - but this function does not work anyway"; - PlaySound = "int tid, str sound, [int channel], [fixed volume], [bool looping], [fixed attenuation]"; + PlaySound = "int tid, str sound, [int channel], [fixed volume], [bool looping], [fixed attenuation], [bool local]"; PolyWait = "int polynum"; Print = "type:expression"; PrintBold = "type:expression"; @@ -870,7 +886,9 @@ SetSectorGlow = "int tag, bool which, int red, int green, int blue, int height"; SetSectorTerrain = "int tag, int whichplane, str terraintype"; SetSkyScrollSpeed = "int sky, float skyspeed"; + SetSubtitleNumber = "int num, str sound"; SetThingSpecial = "int tid, int special, [int arg1], [int arg2], [int arg3], [int arg4], [int arg5]"; + SetTranslation = "int tid, str transname"; SetUserArray = "int tid, str name, int pos, int value"; SetUserCVar = "int playernum, str cvarname, int newvalue", "int playernum, str cvarname, fixed newvalue", "int playernum, str cvarname, bool newvalue"; SetUserCVarString = "int playernum, str cvarname, str newvalue"; @@ -956,12 +974,14 @@ GetPlayerAccountName = "unknown parameters list"; GetPlayerLivesLeft = "int player"; GetTeamProperty = "int team, int property"; + GetTimeProperty = "int timestamp, int which, [int utc]"; IncrementDBEntry = "unknown parameters list"; IsMultiplayer; IsNetworkGame; IsOneFlagCTF; KickFromGame = "int player, str reason"; Music_Change = "str music, int pattern"; + NamedRequestScriptPuke = "str script, [int arg0], [int arg1], [int arg2], [int arg3]"; PlayerArmorPoints; PlayerHealth; PlayerIsLoggedIn = "int playernumber"; @@ -988,6 +1008,8 @@ SetPlayerLivesLeft = "int player, int amount"; SinglePlayer; SortDBEntries = "unknown parameters list"; + Strftime = "int timestamp, str format, [int utc]"; + SystemTime; // ZDaemon functions GetTeamScore = "int team"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/dist/res/config/languages/srb2lua.txt new/SLADE-3.1.13/dist/res/config/languages/srb2lua.txt --- old/SLADE-3.1.12a/dist/res/config/languages/srb2lua.txt 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/dist/res/config/languages/srb2lua.txt 2021-06-01 06:32:31.000000000 +0200 @@ -5,6 +5,10 @@ comment_end = "]]", "*/"; comment_line = "--", "//"; case_sensitive = true; + block_begin = "{"; + block_end = "}"; + word_block_begin = "do", "function", "if"; + word_block_end = "end"; keywords = { and, break, continue, do, else, elseif, end, false, for, function, @@ -13,6 +17,10 @@ } constants = { + false, + true, + nil, + // userdata types valid, @@ -100,6 +108,9 @@ FRACUNIT, FRACBITS, TICRATE, + NEWTICRATERATIO, + NEWTICRATE, + MUSICRATE, RING_DIST, PUSHACCEL, MODID, @@ -112,6 +123,7 @@ MISSILERANGE, ONFLOORZ, ONCEILINGZ, + INFLIVES, // translucency levels TR_TRANS10, @@ -125,6 +137,252 @@ TR_TRANS90, NUMTRANSMAPS, + // frame settings + FF_FRAMEMASK, + FF_SPR2SUPER, + FF_SPR2ENDSTATE, + FF_SPR2MIDSTART, + FF_TRANSMASK, + FF_TRANSSHIFT, + FF_TRANS10, + FF_TRANS20, + FF_TRANS30, + FF_TRANS40, + FF_TRANS50, + FF_TRANS60, + FF_TRANS70, + FF_TRANS80, + FF_TRANS90, + FF_FULLBRIGHT, + FF_VERTICALFLIP, + FF_PAPERSPRITE, + FF_ANIMATE, + FF_RANDOMANIM, + FF_GLOBALANIM, + FF_HORIZONTALFLIP, + + // translation colormaps + TC_DEFAULT, + TC_BOSS, + TC_METALSONIC, + TC_ALLWHITE, + TC_RAINBOW, + TC_BLINK, + TC_DASHMODE, + + // A_Chase directions + DI_NODIR, + DI_EAST, + DI_NORTHEAST, + DI_NORTH, + DI_NORTHWEST, + DI_WEST, + DI_SOUTHWEST, + DI_SOUTH, + DI_SOUTHEAST, + NUMDIRS, + + // damage/death types + DMG_WATER, + DMG_FIRE, + DMG_ELECTRIC, + DMG_SPIKE, + DMG_NUKE, + DMG_INSTAKILL, + DMG_DROWNED, + DMG_SPACEDROWN, + DMG_DEATHPIT, + DMG_CRUSHED, + DMG_SPECTATOR, + DMG_CANHURTSELF, + DMG_DEATHMASK, + + // skin flags + SF_SUPER, + SF_NOSUPERSPIN, + SF_NOSPINDASHDUST, + SF_HIRES, + SF_NOSKID, + SF_NOSPEEDADJUST, + SF_RUNONWATER, + SF_NOJUMPSPIN, + SF_NOJUMPDAMAGE, + SF_STOMPDAMAGE, + SF_MARIODAMAGE, + SF_MACHINE, + SF_DASHMODE, + SF_FASTEDGE, + SF_MULTIABILITY, + SF_NONIGHTSROTATION, + SF_NOSUPERSPRITES, + + // Character abilities + CA_NONE, + CA_THOK, + CA_FLY, + CA_GLIDEANDCLIMB, + CA_HOMINGTHOK, + CA_SWIM, + CA_DOUBLEJUMP, + CA_FLOAT, + CA_SLOWFALL, + CA_TELEKINESIS, + CA_FALLSWITCH, + CA_JUMPBOOST, + CA_AIRDRILL, + CA_JUMPTHOK, + CA_BOUNCE, + CA_TWINSPIN, + CA2_NONE, + CA2_SPINDASH, + CA2_GUNSLINGER, + CA2_MELEE, + + // player states + PST_LIVE, + PST_DEAD, + PST_REBORN, + + // skin sounds + SKSSPIN, + SKSPUTPUT, + SKSPUDPUD, + SKSPLPAN1, + SKSPLPAN2, + SKSPLPAN3, + SKSPLPAN4, + SKSPLDET1, + SKSPLDET2, + SKSPLDET3, + SKSPLDET4, + SKSPLVCT1, + SKSPLVCT2, + SKSPLVCT3, + SKSPLVCT4, + SKSTHOK, + SKSSPNDSH, + SKSZOOM, + SKSSKID, + SKSGASP, + SKSJUMP, + + // internal player flags + PF_FLIPCAM, + PF_ANALOGMODE, + PF_DIRECTIONCHAR, + PF_AUTOBRAKE, + PF_GODMODE, + PF_NOCLIP, + PF_INVIS, + PF_ATTACKDOWN, + PF_USEDOWN, + PF_JUMPDOWN, + PF_WPNDOWN, + PF_STASIS, + PF_JUMPSTASIS, + PF_FULLSTASIS, + PF_APPLYAUTOBRAKE, + PF_STARTJUMP, + PF_JUMPED, + PF_NOJUMPDAMAGE, + PF_STARTDASH, + PF_THOKKED, + PF_SHIELDABILITY, + PF_GLIDING, + PF_BOUNCING, + PF_SLIDING, + PF_TRANSFERTOCLOSEST, + PF_DRILLING, + PF_GAMETYPEOVER, + PF_TAGIT, + PF_FORCESTRAFE, + PF_CANCARRY, + PF_FINISHED, + + // player animations + PA_ETC, + PA_IDLE, + PA_EDGE, + PA_WALK, + PA_RUN, + PA_DASH, + PA_PAIN, + PA_ROLL, + PA_JUMP, + PA_SPRING, + PA_FALL, + PA_ABILITY, + PA_ABILITY2, + PA_RIDE, + + // shield types + SH_NONE, + SH_PITY, + SH_WHIRLWIND, + SH_ARMAGEDDON, + SH_PINK, + SH_ELEMENTAL, + SH_ATTRACT, + SH_FLAMEAURA, + SH_BUBBLEWRAP, + SH_THUNDERCOIN, + SH_FORCE, + SH_FORCEHP, + SH_FIREFLOWER, + SH_STACK, + SH_NOSTACK, + SH_PROTECTFIRE, + SH_PROTECTWATER, + SH_PROTECTELECTRIC, + SH_PROTECTSPIKE, + + // carry types + CR_NONE, + CR_GENERIC, + CR_PLAYER, + CR_NIGHTSMODE, + CR_NIGHTSFALL, + CR_BRAKGOOP, + CR_ZOOMTUBE, + CR_ROPEHANG, + CR_MACESPIN, + CR_MINECART, + CR_ROLLOUT, + CR_PTERABYTE, + + // emerald flags + EMERALD1, + EMERALD2, + EMERALD3, + EMERALD4, + EMERALD5, + EMERALD6, + EMERALD7, + + // button flags + BT_WEAPONMASK, + BT_WEAPONNEXT, + BT_WEAPONPREV, + BT_ATTACK, + BT_USE, + BT_CAMLEFT, + BT_CAMRIGHT, + BT_TOSSFLAG, + BT_JUMP, + BT_FIRENORMAL, + BT_CUSTOM1, + BT_CUSTOM2, + BT_CUSTOM3, + + // current weapon + WEP_AUTO, + WEP_BOUNCE, + WEP_SCATTER, + WEP_GRENADE, + WEP_EXPLODE, + WEP_RAIL, + NUM_WEAPONS, + // kick reasons KR_KICK, KR_BAN, @@ -135,14 +393,132 @@ // slope flags SL_NOPHYSICS, - SL_NODYNAMIC, - SL_ANCHORVERTEX, - SL_VERTEXSLOPE, - - // save override - SAVE_NEVER, - SAVE_DEFAULT, - SAVE_ALWAYS + SL_DYNAMIC, + + // emblem flags + GE_NIGHTSPULL, + GE_NIGHTSITEM, + ME_ALLEMERALDS, + ME_ULTIMATE, + ME_PERFECT, + + // jingle types + JT_NONE, + JT_OTHER, + JT_MASTER, + JT_1UP, + JT_SHOES, + JT_INV, + JT_MINV, + JT_DROWN, + JT_SUPER, + JT_GOVER, + JT_NIGHTSTIMEOUT, + JT_SSTIMEOUT, + + // player powers + pw_invulnerability, + pw_sneakers, + pw_flashing, + pw_shield, + pw_carry, + pw_tailsfly, + pw_underwater, + pw_spacetime, + pw_extralife, + pw_pushing, + pw_justsprung, + pw_noautobrake, + pw_super, + pw_gravityboots, + pw_infinityring, + pw_automaticring, + pw_bouncering, + pw_scatterring, + pw_grenadering, + pw_explosionring, + pw_railring, + pw_emeralds, + pw_nights_superloop, + pw_nights_helper, + pw_nights_linkfreeze, + pw_nocontrol, + pw_dye, + pw_justlaunched, + pw_ignorelatch, + + // gametype rules + GTR_CAMPAIGN, + GTR_RINGSLINGER, + GTR_SPECTATORS, + GTR_LIVES, + GTR_TEAMS, + GTR_FIRSTPERSON, + GTR_POWERSTONES, + GTR_TEAMFLAGS, + GTR_FRIENDLY, + GTR_SPECIALSTAGES, + GTR_EMERALDTOKENS, + GTR_EMERALDHUNT, + GTR_RACE, + GTR_TAG, + GTR_POINTLIMIT, + GTR_TIMELIMIT, + GTR_OVERTIME, + GTR_HURTMESSAGES, + GTR_FRIENDLYFIRE, + GTR_STARTCOUNTDOWN, + GTR_HIDEFROZEN, + GTR_BLINDFOLDED, + GTR_RESPAWNDELAY, + GTR_PITYSHIELD, + GTR_DEATHPENALTY, + GTR_NOSPECTATORSPAWN, + GTR_DEATHMATCHSTARTS, + GTR_SPAWNINVUL, + GTR_SPAWNENEMIES, + GTR_ALLOWEXIT, + GTR_NOTITLECARD, + GTR_CUTSCENES, + + // P_FlashPal palettes + PAL_WHITE, + PAL_MIXUP, + PAL_RECYCLE, + PAL_NUKE, + + // TypeOfLevel flags + TOL_SP, + TOL_COOP, + TOL_COMPETITION, + TOL_RACE, + TOL_MATCH, + TOL_TAG, + TOL_CTF, + TOL_CUSTOM, + TOL_2D, + TOL_MARIO, + TOL_NIGHTS, + TOL_ERZ3, + TOL_XMAS, + + // Linedef flags + ML_IMPASSIBLE, + ML_BLOCKMONSTERS, + ML_TWOSIDED, + ML_DONTPEGTOP, + ML_DONTPEGBOTTOM, + ML_EFFECT1, + ML_NOCLIMB, + ML_EFFECT2, + ML_EFFECT3, + ML_EFFECT4, + ML_EFFECT5, + ML_NETONLY, + ML_NONET, + ML_EFFECT6, + ML_BOUNCY, + ML_TFERLINE, } functions { @@ -152,8 +528,9 @@ freeslot = "string resource, [string resource2], [...]"; super = "mobj_t actor, int var1, int var2"; addHook = "string hook, function(?) fn, [int extra]"; - EvalMath = "string word"; IsPlayerAdmin = "player_t player"; + userdataType = "* v"; + reserveLuabanks; // math abs = "int a"; @@ -205,7 +582,10 @@ // p_mobj P_SpawnMobj = "fixed x, fixed y, fixed z, int type"; + P_SpawnMobjFromMobj = "mobj_t origin, fixed x, fixed y, fixed z, int type"; P_RemoveMobj = "mobj_t mobj"; + P_IsValidSprite2 = "mobj_t mobj, int sprite2"; + P_SpawnLockOn = "player_t player, mobj_t target, state_t state"; P_SpawnMissile = "mobj_t source, mobj_t dest, int type"; P_SpawnXYZMissile = "mobj_t source, mobj_t dest, int type, fixed x, fixed y, fixed z"; P_SpawnPointMissile = "mobj_t source, fixed dest_x, fixed dest_y, fixed dest_z, int type, fixed x, fixed y, fixed z"; @@ -235,18 +615,23 @@ P_GetPlayerSpinHeight = "player_t player"; P_GetPlayerControlDirection = "player_t player"; P_AddPlayerScore = "player_t player, int amount"; + P_StealPlayerScore = "player_t player, int amount"; + P_GetJumpFlags = "player_t player"; P_PlayerInPain = "player_t player"; P_DoPlayerPain = "player_t player, [mobj_t source], [mobj_t inflictor]"; P_ResetPlayer = "player_t player"; + P_PlayerCanDamage = "player_t player, mobj_t mobj"; P_IsObjectOnGround = "mobj_t mobj"; P_SetObjectMomZ = "mobj_t mobj, fixed momz, [boolean relative?]"; P_RestoreMusic = "player_t player"; + P_SpawnShieldOrb = "player_t player"; P_SpawnGhostMobj = "mobj_t mobj"; P_GivePlayerRings = "player_t player, int amount"; P_GivePlayerLives = "player_t player, int amount"; + P_GiveCoopLives = "player_t player, int amount, [boolean playsound]"; P_ResetScore = "player_t player"; P_BlackOw = "player_t player"; - P_ElementalFireTrail = "player_t player"; + P_ElementalFire = "player_t player"; P_DoPlayerExit = "player_t player"; P_InstaThrust = "mobj_t mobj, angle angle, fixed move"; P_ReturnThrustX = "mobj_t mobj, angle angle, fixed move"; @@ -257,10 +642,16 @@ P_SpawnThokMobj = "player_t player"; P_SpawnSpinMobj = "player_t player, int type"; P_Telekinesis = "player_t player, fixed_t thrust, fixed_t range"; + P_SwitchShield = "player_t player, int shield"; + P_PlayJingle = "player_t player, int jingletype"; + P_PlayJingleMusic = "player_t player, string musname, [int musflags], [boolean looping], [int jingletype]"; P_InQuicksand = "mobj_t mobj"; P_InSpaceSector = "mobj_t mobj"; P_DoJumpShield = "player_t player"; + P_DoBubbleBounce = "player_t player"; P_IsObjectInGoop = "mobj_t mobj"; + P_SpawnSkidDust = "player_t player, fixed_t radius, [int sound]"; + P_Earthquake = "mobj_t inflictor, mobj_t source, fixed_t radius"; // r_data R_TextureNumForName = "string name"; @@ -275,13 +666,12 @@ P_BounceMove = "mobj_t mo"; P_CheckSight = "mobj_t source, mobj_t target"; P_CheckHoopPosition = "mobj_t hoop, fixed x, fixed y, fixed z, fixed radius"; - P_RadiusAttack = "mobj_t inflictor, mobj_t source, fixed radius"; + P_RadiusAttack = "mobj_t inflictor, mobj_t source, fixed radius, [int damagetype], [boolean sightcheck]"; P_FloorzAtPos = "fixed x, fixed y, fixed z, fixed height"; P_DoSpring = "mobj_t spring, mobj_t object"; // p_inter P_RemoveShield = "player_t player"; - P_SpawnShieldOrb = "player_t player"; P_DamageMobj = "mobj_t target, [mobj_t inflictor], [mobj_t source], [int damage]"; P_KillMobj = "mobj_t target, [mobj_t inflictor], [mobj_t source]"; P_PlayerRingBurst = "player_t player, [int numrings]"; @@ -295,6 +685,7 @@ P_PlayLivesJingle = "player_t player"; P_CanPickupItem = "player_t player, [boolean weapon?]"; P_DoNightsScore = "player_t player"; + P_DoMatchSuper = "player_t player"; // p_spec P_Thrust = "mobj_t mobj, angle angle, fixed move"; @@ -306,13 +697,14 @@ P_SwitchWeather = "int weather, [player_t player]"; P_LinedefExecute = "int tag, [mobj_t actor], [sector_t caller]"; P_SpawnLightningFlash = "sector_t sector"; - P_FadeLight = "int tag, int destvalue, int speed"; + P_FadeLight = "int tag, int destvalue, int speed, [boolean ticbased, [boolean force]"; P_ThingOnSpecial3DFloor = "mobj_t mobj"; P_SetupLevelSky = "int skynum, [player player]"; P_SetSkyboxMobj = "mobj_t mobj, [boolean centerpoint?], [player_t user]"; P_StartQuake = "fixed intensity, int time, [table{x/y/z} epicenter], [fixed radius]"; P_IsFlagAtBase = "int type"; EV_CrumbleChain = "sector_t sector, ffloor_t rover"; + EV_StartCrumble = "sector_t sector, ffloor_t rover, [boolean floating], [player_t player], [fixed origalpha], [boolean crumblereturn]"; // r_defs R_PointToAngle = "fixed x, fixed y"; @@ -325,24 +717,39 @@ R_Char2Frame = "string char"; R_Frame2Char = "int frame"; R_SetPlayerSkin = "player_t player, int/string skin"; + R_SkinUsable = "player_t player, int/string skin"; + + // r_draw + R_GetColorByName = "string colorname"; + R_GetNameByColor = "int color"; // s_sound S_StartSound = "mobj_t origin, int soundnum, [player_t player]"; S_StartSoundAtVolume = "mobj_t origin, int soundnum, int volume, [player_t player]"; S_StopSound = "mobj_t origin"; - S_ChangeMusic = "int musicnum, [boolean looping?], [player_t player]"; + S_ChangeMusic = "int musicnum, [[boolean looping?, [player_t player, [int tracknum, [int position, [int prefadems], [int fadeinms]"; S_SpeedMusic = "fixed musicspeed, [player_t player]"; S_StopMusic = "[player_t player]"; + S_SetInternalMusicVolume = "int volume, [player_t player]"; + S_StopFadingMusic = "[player_t player]"; + S_FadeMusic = "int target_volume, int ms, [player_t player]"; + S_FadeOutStopMusic = "int ms, [player_t player]"; S_OriginPlaying = "mobj_t origin"; S_IdPlaying = "int soundnum"; S_SoundPlaying = "mobj_t origin, int soundnum"; + S_StartMusicCaption = "player_t player, string caption, int lifespan"; + S_GetMusicLength; + S_GetMusicPosition; + S_SetMusicPosition = "int position"; // g_game G_BuildMapName = "int map"; + G_EnoughPlayersFinished; G_DoReborn = "int playernum"; G_ExitLevel = "[int nextmap], [boolean skipstats]"; - G_SetCustomExitVars = "[int nextmap], [boolean skipstats]"; + G_SetCustomExitVars = "[int nextmap], [int skipstats]"; G_IsSpecialStage = "int map"; + G_AddGametype = "table t"; G_GametypeUsesLives; G_GametypeHasTeams; G_GametypeHasSpectators; @@ -360,6 +767,7 @@ COM_BufAddText = "player_t player, string text"; COM_BufInsertText = "player_t player, string text"; CV_RegisterVar = "table{string name/string defaultvalue/int flags/PossibleValue pv/function() fn}, [...]"; + CV_FindVar = "string var"; CONS_Printf = "player_t player, string text"; // blockmap search @@ -367,7 +775,7 @@ // iterators players.iterate; - thinkers.iterate = "string type"; + mobjs.iterate; skins.iterate; sectors.iterate; subsectors.iterate; @@ -383,21 +791,36 @@ // technically these are a part of the video code but you can rename that whatever you want... draw = "int x, int y, patch patch, [int flags], [colormap c]"; drawScaled = "fixed x, fixed y, fixed scale, patch patch, [int flags], [colormap c]"; + drawStreched = "fixed x, fixed y, fixed hscale, fixed vscale, patch_t patch, [int flags], [colormap c]"; drawNum = "int x, int y, int num, [int flags]"; drawPaddedNum = "int x, int y, int num, [int digits], [int flags]"; drawFill = "[int x], [int y], [int w], [int h], [int color]"; drawString = "fixed x, fixed y, string str, [int flags], [string alignment]"; + drawNameTag = "int x, int y, string text, [int flags], [int basecolor], [int outlinecolor]"; + drawScaledNameTag = "int x, int y, string text, [int flags], [int scale], [int basecolor], [int outlinecolor]"; patchExists = "string name"; cachePatch = "string name"; getColormap = "[string/int skin], [int color]"; + fadeScreen = "int color, int strength"; + getSpritePatch = "int sprite, [int frame], [int angle]"; + getSprite2Patch = "string/int skin, string/int sprite2, [boolean super?], [int frame], [int rotation], [angle rollangle]"; stringWidth = "string string, [int flags], [string widthtype]"; - getLocalTransFlag; + nameTagWidth = "string text"; + localTransFlag; + userTransFlag; + RandomFixed; + RandomByte; + RandomKey = "int a"; + RandomRange = "int a"; + SignedRandom; + RandomChance = "fixed p"; // basic Lua assert = "boolean assert, [string errormsg]"; collectgarbage = "[string opt], [string arg]"; error = "string message, [int level]"; - gcinfo = "(unknown)"; + dofile = "string file"; + gcinfo; getfenv = "function(*) fn"; getmetatable = "object obj"; ipairs = "table{} t"; @@ -415,6 +838,11 @@ type = "* v"; unpack = "table{} list, [int start], [int end]"; xpcall = "function(?) call, function(boolean status) errortrap"; + io.open = "string filename, [string mode], function callback"; + io.openlocal = "string filename, [string mode], function callback"; + io.close = "file file"; + io.tmpfile; + io.type = "* obj"; coroutine.create = "function(?) fn"; coroutine.resume = "coroutine co, [* val], [...]"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/dist/res/config/languages/zdoom.txt new/SLADE-3.1.13/dist/res/config/languages/zdoom.txt --- old/SLADE-3.1.12a/dist/res/config/languages/zdoom.txt 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/dist/res/config/languages/zdoom.txt 2021-06-01 06:32:31.000000000 +0200 @@ -186,14 +186,15 @@ keywords = { // Generic - lookup, + lookup, include, // Cluster Cluster, ClusterDef, EnterText, ExitText, ExitTextIsLump, Music, Flat, Pic, Hub, - AllowIntermission, + AllowIntermission, entertextislump, // Episode ClearEpisodes, Episode, Name, PicName, Key, Remove, NoSkillMenu, Optional, Extended, + teaser, // Map Map, DefaultMap, AddDefaultMap, GameDefaults, @@ -221,6 +222,23 @@ Translator, UnFreezeSinglePlayerConversations, UsePlayerStartZ, VertWallShade, ForceFakeContrast, PrecacheTextures, PrecacheClasses, HazardColor, HazardFlash, AddEventHandlers, EventHandlers, TextMusic, TextFlat, TextPic, + additive_scrollers, author, brightfog, cd_end1_track, cd_end2_track, cd_end3_track, + cd_intermission_track, cd_start_track, cd_title_track, compat_anybossdeath, + compat_badangles, compat_boomscroll, compat_checkswitchrange, compat_corpsegibs, + compat_crossdropoff, compat_dehhealth, compat_dropoff, compat_explode1, compat_explode2, + compat_floormove, compat_invisibility, compat_light, compat_limitpain, + compat_maskedmidtex, compat_mbfmonstermove, compat_minotaur, compat_missileclip, + compat_multiexit, compat_mushroom, compat_noblockfriends, compat_nodoorlight, + compat_nopassover, compat_notossdrops, compat_pointonline, compat_polyobj, + compat_pushwindow, compat_railing, compat_ravenscroll, compat_scriptwait, + compat_sectorsounds, compat_shorttex, compat_silent_instant_floors, compat_soundcutoff, + compat_soundtarget, compat_spritesort, compat_stairs, compat_teleport, compat_trace, + compat_useblocking, edata, endofgame, forceworldpanning, fs_nocheckposition, + interpic, killeractivatesdeathspecials, loadacs, mapintermusic, needclustertext, + noclustertext, noinfiniteflightpowerup, nomonsterfallingdamage, nostatistics, + notexturefill, partime, pausemusicinmenus, resetitems, skyrotate2, sndinfo, sndseq, + soundinfo, specialaction_lowerfloortohighest, warptrans, wrapmidtextures, + propermonsterfallingdamage, disableskyboxao, enableskyboxao, // GZDoom FogDensity, OutsideFogDensity, SkyFog, LightMode, NoColoredSpriteLighting, SkyRotate, PixelRatio, @@ -230,7 +248,8 @@ Skill, ClearSkills, AmmoFactor, DropAmmoFactor, DoubleAmmoFactor, DamageFactor, RespawnTime, RespawnLimit, Aggressiveness, SpawnFilter, ACSReturn, Key, MustConfirm, Name, PlayerClassName, PicName, TextColor, EasyBossBrain, FastMonsters, SlowMonsters, DisableCheats, AutoUseHealth, ReplaceActor, MonsterHealth, FriendlyHealth, NoPain, - DefaultSkill, ArmorFactor, EasyKey, HealthFactor, KickbackFactor, NoMenu, + DefaultSkill, ArmorFactor, EasyKey, HealthFactor, KickbackFactor, NoMenu, baby, easy, hard, nightmare, normal, + playerrespawn, SpawnMulti, InstantReaction, // GameInfo definitions GameInfo, AddCreditPage, AddInfoPage, AddPlayerClasses, AddQuitMessages, AdvisoryTime, Border, BackpackType, @@ -244,18 +263,22 @@ NoRandomPlayerclass, StatScreen_EnteringPatch, StatScreen_FinishedPatch, StatScreen_MapNameFont, NightmareFast, DontCrunchCorpses, CheatKey, ForceKillScripts, MessageBoxClass, StatusBarClass, DefaultConversationMenuClass, StatScreen_FinishedFont, StatScreen_EnteringFont, Dialogue, StatScreen_Single, StatScreen_Coop, StatScreen_DM, - BlurAmount, CorrectPrintBold, MenuSliderColor, + BlurAmount, CorrectPrintBold, MenuSliderColor, althudclass, forcenogfxsubstitution, forcetextinmenus, + fullscreenautoaspect, nomergepickupmsg, normforwardmove, normsidemove, statscreen_authorfont, + statscreen_contentfont, menusliderbackcolor, hidepartimes, // Intermission definitions Intermission, Link, Cast, Fader, GotoTitle, Image, Scroller, TextScreen, Wiper, Background, CDMusic, Draw, DrawConditional, Music, Sound, Time, CastClass, CastName, AttackSound, FadeType, Background2, InitialDelay, ScrollDirection, ScrollTime, Position, Text, TextColor, TextDelay, TextLump, TextSpeed, WipeType, + down, left, right, up, fadein, fadeout, burn, crossfade, default, melt, subtitle, // Automap Automap, Automap_Overlay, AlmostBackgroundColor, Base, CeilingDiffWallColor, ExtraFloorWallColor, FloorDiffWallColor, GridColor, InterTeleportColor, IntraTeleportColor, LockedColor, NotSeenColor, SecretSectorColor, SecretWallColor, ShowLocks, SpecialWallColor, ThingColor, ThingColor_CountItem, ThingColor_Friend, ThingColor_Item, ThingColor_Monster, ThingColor_NocountMonster, TwoSidedWallColor, WallColor, XHairColor, YourColor, + false, true, portalcolor, unexploredsecretcolor, // Thing editor numbers DoomEdNums, NoSkillFlags, @@ -281,25 +304,25 @@ keyword_link = "http://zdoom.org/wiki/MENUDEF"; constant_link = "http://zdoom.org/wiki/MENUDEF"; function_link = "http://zdoom.org/wiki/MENUDEF"; - blocks = "listmenu", "optionmenu", addoptionmenu, "optionvalue", "optionstring"; + blocks = "listmenu", "addlistmenu", "optionmenu", addoptionmenu, "optionvalue", "optionstring"; keywords = { - ListMenu, OptionMenu, AddOptionMenu, OptionValue, OptionString, + ListMenu, AddListMenu, OptionMenu, AddOptionMenu, OptionValue, OptionString, DefaultListMenu, DefaultOptionMenu, OptionMenuSettings, Font, Linespacing, LabelOffset, PlayerDisplay, Position, Selector, StaticText, StaticTextSwitchable, ScrollTop, SafeCommand, ColorPicker, Class, ScreenResolution, StaticPatch, Control, Option, Slider, PatchItem, TextItem, Submenu, Command, NetgameMessage, StaticPatchCentered, StaticTextCentered, MouseWindow, CenterMenu, Title, PlayerNameBox, ValueText, MapControl, Else, TextField, NumberField, - ScaleSlider + ScaleSlider, Size, AnimatedTransition, FlagOption, Before, After } functions { ifgame = "game, [...]"; ifoption = "option, [...]"; } constants = { doom, heretic, hexen, strife, chex, readthis, swapmenu, windows, unix, mac, - LoadMenu, SaveMenu, PlayerMenu, JoystickConfigMenu, - GameplayMenu, CompatibilityMenu, VideoModeMenu, + openal, LoadMenu, SaveMenu, PlayerMenu, JoystickConfigMenu, + GameplayMenu, CompatibilityMenu, VideoModeMenu, } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/dist/res/config/ports/include/flags_zdoom.cfg new/SLADE-3.1.13/dist/res/config/ports/include/flags_zdoom.cfg --- old/SLADE-3.1.12a/dist/res/config/ports/include/flags_zdoom.cfg 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/dist/res/config/ports/include/flags_zdoom.cfg 2021-06-01 06:32:31.000000000 +0200 @@ -91,6 +91,18 @@ value = 16384; udmf = "standing"; } + + flag "Count as Secret" + { + value = 524288; + udmf = "countsecret"; + } + + flag "Does Not Count" + { + value = 2097152; + udmf = "nocount"; + } } line_flags @@ -375,4 +387,4 @@ udmf = "blockeverything"; } } -#endif // !NAMESPACE_ZDOOM \ No newline at end of file +#endif // !NAMESPACE_ZDOOM diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/net.mancubus.SLADE.metainfo.xml new/SLADE-3.1.13/net.mancubus.SLADE.metainfo.xml --- old/SLADE-3.1.12a/net.mancubus.SLADE.metainfo.xml 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/net.mancubus.SLADE.metainfo.xml 2021-06-01 06:32:31.000000000 +0200 @@ -58,6 +58,7 @@ </screenshot> </screenshots> <releases> + <release date="2021-06-01" version="3.1.13"/> <release date="2020-05-26" version="3.1.12"/> <release date="2020-03-03" version="3.1.11"/> <release date="2020-02-20" version="3.1.10"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/src/Application/App.cpp new/SLADE-3.1.13/src/Application/App.cpp --- old/SLADE-3.1.12a/src/Application/App.cpp 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/src/Application/App.cpp 2021-06-01 06:32:31.000000000 +0200 @@ -71,7 +71,7 @@ std::thread::id main_thread_id; // Version -Version version_num{ 3, 1, 12, 0 }; +Version version_num{ 3, 1, 13, 0 }; // Directory paths string dir_data = ""; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/src/CMakeLists.txt new/SLADE-3.1.13/src/CMakeLists.txt --- old/SLADE-3.1.12a/src/CMakeLists.txt 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/src/CMakeLists.txt 2021-06-01 06:32:31.000000000 +0200 @@ -162,6 +162,11 @@ # enable SSE instructions for dumb library set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_USE_SSE -msse") +if(USE_SANITIZER) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") +endif(USE_SANITIZER) + # External libraries are compiled separately to enable unity builds add_subdirectory(External) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/src/General/ResourceManager.cpp new/SLADE-3.1.13/src/General/ResourceManager.cpp --- old/SLADE-3.1.12a/src/General/ResourceManager.cpp 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/src/General/ResourceManager.cpp 2021-06-01 06:32:31.000000000 +0200 @@ -31,6 +31,7 @@ // // ---------------------------------------------------------------------------- #include "Main.h" +#include "Archive/ArchiveEntry.h" #include "ResourceManager.h" #include "Archive/ArchiveManager.h" #include "General/Console/Console.h" @@ -296,7 +297,7 @@ removeArchiveFromMap(satextures_fp_, archive); // Remove any textures in the archive - for (auto& i : textures_) + for (auto& i : composites_) i.second.remove(archive); // Announce resource update @@ -408,7 +409,7 @@ } // Check for stand-alone texture entry - if (entry->isInNamespace("textures") || entry->isInNamespace("hires")) + if (entry->isInNamespace("textures")) { satextures_[name].add(entry); if (!entry->getParent()->isTreeless()) @@ -418,7 +419,10 @@ // Add name to hash table ResourceManager::doom64_hash_table_[getTextureHash(name)] = name; - + } + else if (entry->isInNamespace("hires")) + { // Handle hi-res textures + hires_[name].add(entry); } } @@ -452,7 +456,7 @@ for (unsigned a = 0; a < tx.nTextures(); a++) { tex = tx.getTexture(a); - textures_[tex->getName()].add(tex, entry->getParent()); + composites_[tex->getName()].add(tex, entry->getParent()); } } } @@ -509,7 +513,7 @@ // Remove all texture resources for (unsigned a = 0; a < tx.nTextures(); a++) - textures_[tx.getTexture(a)->getName()].remove(entry->getParent()); + composites_[tx.getTexture(a)->getName()].remove(entry->getParent()); } } @@ -562,7 +566,7 @@ void ResourceManager::getAllTextures(vector<TextureResource::Texture*>& list, Archive* priority, Archive* ignore) { // Add all primary textures to the list - for (auto& i : textures_) + for (auto& i : composites_) { // Skip if no entries if (i.second.length() == 0) @@ -602,7 +606,7 @@ void ResourceManager::getAllTextureNames(vector<string>& list) { // Add all primary textures to the list - for (auto& i : textures_) + for (auto& i : composites_) if (i.second.length() > 0) // Ignore if no entries list.push_back(i.first); } @@ -725,24 +729,37 @@ return nullptr; } +ArchiveEntry* ResourceManager::getHiresEntry(const string& texture, Archive* priority) +{ + // Hi-res textures can only be used with a short name + ArchiveEntry* entry = hires_[texture.Upper()].getEntry(priority, "hires", true); + if (entry) + return entry; + return nullptr; +} + // ---------------------------------------------------------------------------- // ResourceManager::getTexture // // Returns the most appropriate managed texture for [texture], or nullptr if no // match found // ---------------------------------------------------------------------------- -CTexture* ResourceManager::getTexture(const string& texture, Archive* priority, Archive* ignore) +CTexture* ResourceManager::getTexture(const string& texture, const string& type, Archive* priority, Archive* ignore) { // Check texture resource with matching name exists - TextureResource& res = textures_[texture.Upper()]; + TextureResource& res = composites_[texture.Upper()]; if (res.textures_.empty()) return nullptr; // Go through resource textures - CTexture* tex = &res.textures_[0].get()->tex; + CTexture* tex = nullptr; Archive* parent = res.textures_[0].get()->parent; for (auto& res_tex : res.textures_) { + // Skip if it's not the desired type + if (type != "" && res_tex->tex.getType() != type) + continue; + // Skip if it's in the 'ignore' archive if (res_tex->parent == ignore) continue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/src/General/ResourceManager.h new/SLADE-3.1.13/src/General/ResourceManager.h --- old/SLADE-3.1.12a/src/General/ResourceManager.h 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/src/General/ResourceManager.h 2021-06-01 06:32:31.000000000 +0200 @@ -1,5 +1,6 @@ #pragma once +#include "Archive/ArchiveEntry.h" #include "common.h" #include "Archive/Archive.h" #include "General/ListenerAnnouncer.h" @@ -104,7 +105,8 @@ ArchiveEntry* getPatchEntry(const string& patch, const string& nspace = "patches", Archive* priority = nullptr); ArchiveEntry* getFlatEntry(const string& flat, Archive* priority = nullptr); ArchiveEntry* getTextureEntry(const string& texture, const string& nspace = "textures", Archive* priority = nullptr); - CTexture* getTexture(const string& texture, Archive* priority = nullptr, Archive* ignore = nullptr); + ArchiveEntry* getHiresEntry(const string& texture, Archive* priority = nullptr); + CTexture* getTexture(const string& texture, const string& type = "", Archive* priority = nullptr, Archive* ignore = nullptr); uint16_t getTextureHash(const string& name); void onAnnouncement(Announcer* announcer, string event_name, MemChunk& event_data) override; @@ -123,7 +125,8 @@ EntryResourceMap satextures_; // Stand Alone textures (e.g., between TX_ or T_ markers) EntryResourceMap satextures_fp_; //EntryResourceMap satextures_fp_only_; // Probably not needed - TextureResourceMap textures_; // Composite textures (defined in a TEXTUREx/TEXTURES lump) + EntryResourceMap hires_; + TextureResourceMap composites_; // Composite textures (defined in a TEXTUREx/TEXTURES lump) static ResourceManager* instance_; static string doom64_hash_table_[65536]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/src/Graphics/CTexture/CTexture.cpp new/SLADE-3.1.13/src/Graphics/CTexture/CTexture.cpp --- old/SLADE-3.1.12a/src/Graphics/CTexture/CTexture.cpp 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/src/Graphics/CTexture/CTexture.cpp 2021-06-01 06:32:31.000000000 +0200 @@ -711,7 +711,7 @@ bool CTexture::parse(Tokenizer& tz, string type) { // Check if optional - if (tz.advIfNext("optional")) + if (tz.advIfNextNC("optional")) optional = true; // Read basic info @@ -1090,7 +1090,7 @@ // Otherwise, try the resource manager // TODO: Something has to be ignored here. The entire archive or just the current list? - CTexture* tex = theResourceManager->getTexture(patch->getName(), parent); + CTexture* tex = theResourceManager->getTexture(patch->getName(), "", parent); if (tex) return tex->toImage(image, parent, pal); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/src/MainEditor/UI/TextureXEditor/PatchBrowser.cpp new/SLADE-3.1.13/src/MainEditor/UI/TextureXEditor/PatchBrowser.cpp --- old/SLADE-3.1.12a/src/MainEditor/UI/TextureXEditor/PatchBrowser.cpp 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/src/MainEditor/UI/TextureXEditor/PatchBrowser.cpp 2021-06-01 06:32:31.000000000 +0200 @@ -90,7 +90,7 @@ if (type_ == 1) { // Find texture - CTexture* tex = theResourceManager->getTexture(name_, archive_); + CTexture* tex = theResourceManager->getTexture(name_, "", archive_); // Load texture to image, if it exists if (tex) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/src/MapEditor/MapTextureManager.cpp new/SLADE-3.1.13/src/MapEditor/MapTextureManager.cpp --- old/SLADE-3.1.12a/src/MapEditor/MapTextureManager.cpp 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/src/MapEditor/MapTextureManager.cpp 2021-06-01 06:32:31.000000000 +0200 @@ -29,6 +29,7 @@ * INCLUDES *******************************************************************/ #include "Main.h" +#include "Archive/ArchiveEntry.h" #include "Archive/ArchiveManager.h" #include "Game/Configuration.h" #include "General/Misc.h" @@ -143,13 +144,8 @@ //Palette8bit* pal = getResourcePalette(); // Look for stand-alone textures first - ArchiveEntry* etex = theResourceManager->getTextureEntry(name, "hires", archive); + ArchiveEntry* etex = theResourceManager->getHiresEntry(name, archive); int textypefound = TEXTYPE_HIRES; - if (etex == nullptr) - { - etex = theResourceManager->getTextureEntry(name, "textures", archive); - textypefound = TEXTYPE_TEXTURE; - } if (etex) { SImage image; @@ -181,9 +177,24 @@ } } } + else + { + etex = theResourceManager->getTextureEntry(name, "textures", archive); + textypefound = TEXTYPE_TEXTURE; + SImage image; + // Get image format hint from type, if any + if (Misc::loadImageFromEntry(&image, etex)) + { + mtex.texture = new GLTexture(false); + mtex.texture->setFilter(filter); + mtex.texture->loadImage(&image, palette); + } + } // Try composite textures then - CTexture* ctex = theResourceManager->getTexture(name, archive); + CTexture* ctex = theResourceManager->getTexture(name, "", archive); + CTexture* wallctex = theResourceManager->getTexture(name, "WallTexture", archive); + if (wallctex) ctex = wallctex; if (ctex) // Composite textures take precedence over the textures directory { textypefound = TEXTYPE_WALLTEXTURE; @@ -250,10 +261,17 @@ } } + // Prioritize standalone textures + if (mixed && theResourceManager->getTextureEntry(name, "textures", archive)) + { + return getTexture(name, false); + } + + // Try composite flat texture if (mixed) { - CTexture* ctex = theResourceManager->getTexture(name, archive); - if (ctex && ctex->isExtended() && ctex->getType() != "WallTexture") + CTexture* ctex = theResourceManager->getTexture(name, "Flat", archive); + if (ctex) { SImage image; if (ctex->toImage(image, archive, palette, true)) @@ -263,30 +281,44 @@ mtex.texture->loadImage(&image, palette); double sx = ctex->getScaleX(); if (sx == 0) sx = 1.0; double sy = ctex->getScaleY(); if (sy == 0) sy = 1.0; - mtex.texture->setScale(1.0/sx, 1.0/sy); mtex.texture->setWorldPanning(ctex->worldPanning()); + mtex.texture->setScale(1.0/sx, 1.0/sy); return mtex.texture; } } } - // Flat not found, look for it - //Palette8bit* pal = getResourcePalette(); + // Try to search for an actual flat if (!mtex.texture) { - ArchiveEntry* entry = theResourceManager->getTextureEntry(name, "hires", archive); - if (entry == nullptr) - entry = theResourceManager->getTextureEntry(name, "flats", archive); - if (entry == nullptr) - entry = theResourceManager->getFlatEntry(name, archive); - if (entry) + ArchiveEntry* entry = theResourceManager->getFlatEntry(name, archive); + ArchiveEntry* hires_entry = theResourceManager->getHiresEntry(name, archive); + ArchiveEntry* image_entry = hires_entry; + ArchiveEntry* scale_entry = entry; + // No high-res texture found + if (!image_entry) { - SImage image; - if (Misc::loadImageFromEntry(&image, entry)) + image_entry = entry; + scale_entry = nullptr; + } + // Load the image + SImage image; + if (Misc::loadImageFromEntry(&image, image_entry)) + { + mtex.texture = new GLTexture(false); + mtex.texture->setFilter(filter); + mtex.texture->loadImage(&image, palette); + } + // Get high-res texture scale + if (scale_entry) + { + SImage lores_image; + if (Misc::loadImageFromEntry(&lores_image, scale_entry)) { - mtex.texture = new GLTexture(false); - mtex.texture->setFilter(filter); - mtex.texture->loadImage(&image, palette); + double scaleX = (double)lores_image.getWidth() / (double)image.getWidth(); + double scaleY = (double)lores_image.getHeight() / (double)image.getHeight(); + mtex.texture->setWorldPanning(true); + mtex.texture->setScale(scaleX, scaleY); } } } @@ -294,13 +326,13 @@ // Not found if (!mtex.texture) { - // Try textures if mixed + // Try to search for a composite texture instead if (mixed) + { return getTexture(name, false); + } - // Otherwise use missing texture - else - mtex.texture = &(GLTexture::missingTex()); + mtex.texture = &(GLTexture::missingTex()); } return mtex.texture; @@ -370,7 +402,7 @@ } else // Try composite textures then { - CTexture* ctex = theResourceManager->getTexture(name, archive); + CTexture* ctex = theResourceManager->getTexture(name, "", archive); if (ctex && ctex->toImage(image, archive, this->palette, true)) found = true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/src/MapEditor/Renderer/MapRenderer3D.cpp new/SLADE-3.1.13/src/MapEditor/Renderer/MapRenderer3D.cpp --- old/SLADE-3.1.12a/src/MapEditor/Renderer/MapRenderer3D.cpp 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/src/MapEditor/Renderer/MapRenderer3D.cpp 2021-06-01 06:32:31.000000000 +0200 @@ -150,12 +150,12 @@ dist_sectors.clear(); if (quads) { - delete quads; + delete[] quads; quads = nullptr; } if (flats) { - delete flats; + delete[] flats; flats = nullptr; } @@ -2554,7 +2554,8 @@ { // Create quads array if empty if (!quads) - quads = (quad_3d_t**)malloc(sizeof(quad_3d_t*) * map->nLines() * 4); + // quads = (quad_3d_t**)malloc(sizeof(quad_3d_t*) * map->nLines() * 4); + quads = new quad_3d_t*[map->nLines() * 4]; // Go through lines MapLine* line; @@ -2638,7 +2639,8 @@ { // Create flats array if empty if (!flats) - flats = (flat_3d_t**)malloc(sizeof(flat_3d_t*) * map->nSectors() * 2); + // flats = (flat_3d_t**)malloc(sizeof(flat_3d_t*) * map->nSectors() * 2); + flats = new flat_3d_t*[map->nSectors() * 2]; // Go through sectors MapSector* sector; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SLADE-3.1.12a/win_installer/SLADE.iss new/SLADE-3.1.13/win_installer/SLADE.iss --- old/SLADE-3.1.12a/win_installer/SLADE.iss 2020-05-28 01:08:34.000000000 +0200 +++ new/SLADE-3.1.13/win_installer/SLADE.iss 2021-06-01 06:32:31.000000000 +0200 @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "SLADE" -#define MyAppVersion "3.1.12" +#define MyAppVersion "3.1.13" #define MyAppURL "http://slade.mancubus.net" #define MyAppExeName "SLADE.exe"
