mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-01-31 04:40:55 +00:00
Fixed, Texture previews: texture size labels were displaying incorrect size or no size at all when showing TEXTURES textures with negative scale.
Fixed, Visual mode, UDMF: when several wall parts were selected, only one could be dragged with the mouse. Fixed, Visual mode, Auto-align textures, UDMF: TEXTURES scale is now taken into account when aligning textures. Fixed, Visual mode, Auto-align textures (Y), UDMF: nearest height matching is now applied to non-wrapped middle backsides. Cosmetic changes in ZDoom_ACS.cfg.
This commit is contained in:
parent
b047dc4ae1
commit
844ad7db79
7 changed files with 89 additions and 62 deletions
|
@ -87,12 +87,12 @@ keywords
|
|||
Ceiling_RaiseInstant = "Ceiling_RaiseInstant(tag, unused, height)";
|
||||
Ceiling_RaiseToNearest = "Ceiling_RaiseToNearest(tag, speed)";
|
||||
Ceiling_Waggle = "Ceiling_Waggle(tag, amp, freq, offset, time)";
|
||||
ChangeActorAngle = "ChangeActorAngle(int tid, fixed angle [, bool interpolate = false])\nSets the angle for the actors with the specified tid.\nIf tid is 0, it sets the angle for the activator of the script.\nangle: a fixed point angle in the range of 0.0 to 1.0 (N = 0.25, W = 0.5, S = 0.75, E = 1.0).";
|
||||
ChangeActorPitch = "ChangeActorPitch(int tid, fixed pitch [, bool interpolate = false])\nSets the pitch for the actors with the specified tid. If tid is 0, it sets the pitch for the activator of the script.\npitch: a fixed point angle in the range of 0.0 to 1.0.";
|
||||
ChangeActorAngle = "ChangeActorAngle(int tid, fixed angle[, bool interpolate = false])\nSets the angle for the actors with the specified tid.\nIf tid is 0, it sets the angle for the activator of the script.\nangle: a fixed point angle in the range of 0.0 to 1.0 (N = 0.25, W = 0.5, S = 0.75, E = 1.0).";
|
||||
ChangeActorPitch = "ChangeActorPitch(int tid, fixed pitch[, bool interpolate = false])\nSets the pitch for the actors with the specified tid. If tid is 0, it sets the pitch for the activator of the script.\npitch: a fixed point angle in the range of 0.0 to 1.0.";
|
||||
ChangeCamera = "ChangeCamera(tid, who, revert)";
|
||||
ChangeCeiling = "void ChangeCeiling(int tag, str flatname)";
|
||||
ChangeFloor = "void ChangeFloor(int tag, str flatname)";
|
||||
ChangeLevel = "void ChangeLevel(str mapname, int position, int flags [, int skill])\nChanges to a new map, places the player at the specified start spot, and optionally changes the skill level at the same time.";
|
||||
ChangeLevel = "void ChangeLevel(str mapname, int position, int flags[, int skill])\nChanges to a new map, places the player at the specified start spot, and optionally changes the skill level at the same time.";
|
||||
ChangeSkill = "ChangeSkill(skill)";
|
||||
ChangeSky = "void ChangeSky(str sky1, str sky2)\nChanges the sky texture to sky1 and the second sky texture to sky2.\nBoth textures must be the same height if doublesky is enabled.\nYou may also use any flat, pname, sprite or internal graphic (such as TITLEPIC) in place of an actual texture.\nUseful in conjunction with SetSkyScrollSpeed.";
|
||||
CheckActorCeilingTexture = "bool CheckActorCeilingTexture(int tid, str texture)";
|
||||
|
@ -129,7 +129,7 @@ keywords
|
|||
Door_Open = "Door_Open(tag, speed, lighttag)";
|
||||
Door_Raise = "Door_Raise(tag, speed, delay, lighttag)";
|
||||
DropInventory = "void DropInventory(int tid, str itemtodrop)";
|
||||
DropItem = "int DropItem(int tid, str item [, int dropamount = -1 [, int chance = 256]])\nCauses actors with the matching tid to drop the specified item.\nIf tid is 0, the activator of the script is considered to be the dropper of the item.\nThis works in a similar way to the DropItem actor property.\nThe return value of the function is the number of dropped items.";
|
||||
DropItem = "int DropItem(int tid, str item[, int dropamount = -1[, int chance = 256]])\nCauses actors with the matching tid to drop the specified item.\nIf tid is 0, the activator of the script is considered to be the dropper of the item.\nThis works in a similar way to the DropItem actor property.\nThe return value of the function is the number of dropped items.";
|
||||
Elevator_LowerToNearest = "Elevator_LowerToNearest(tag, speed)";
|
||||
Elevator_MoveToFloor = "Elevator_MoveToFloor(tag, speed)";
|
||||
Elevator_RaiseToNearest = "Elevator_RaiseToNearest(tag, speed)";
|
||||
|
@ -258,7 +258,7 @@ keywords
|
|||
Light_Strobe = "Light_Strobe(tag, upper, lower, u-tics, l-tics)";
|
||||
Light_StrobeDoom = "Light_StrobeDoom(tag, u-tics, l-tics)";
|
||||
Lightning = "Script expression Lightning";
|
||||
LineAttack = "LineAttack(int tid, fixed angle, fixed pitch, int damage [, str pufftype = 'BulletPuff' [, str damagetype = 'None' [, fixed range = 2048 [, int flags = 0]]]])\nFires a hitscan attack. If tid is 0, the activator of the script is the source of the attack.";
|
||||
LineAttack = "LineAttack(int tid, fixed angle, fixed pitch, int damage[, str pufftype = 'BulletPuff'[, str damagetype = 'None'[, fixed range = 2048[, int flags = 0]]]])\nFires a hitscan attack. If tid is 0, the activator of the script is the source of the attack.";
|
||||
Line_AlignCeiling = "Line_AlignCeiling(lineid, side)";
|
||||
Line_AlignFloor = "Line_AlignFloor(lineid, side)";
|
||||
Line_SetBlocking = "Line_SetBlocking(lineid, setflags, clearflags)";
|
||||
|
@ -266,10 +266,9 @@ keywords
|
|||
Line_SetTextureScale = "Line_SetTextureScale(lineid, x, y, side, flags)";
|
||||
LineSide = "int LineSide(void)";
|
||||
LocalAmbientSound = "void LocalAmbientSound(str sound, int volume)";
|
||||
LocalSetMusic = "void LocalSetMusic (str song [, int order [, int unused]])";
|
||||
LocalSetMusic = "void LocalSetMusic (str song[, int order[, int unused]])";
|
||||
Log = "void Log(type:expression)\nLog will print something in the log area of the screen (top left), as well as logging it to the console.\nIt uses the same parameter format as the Print function.";
|
||||
MorphActor = "int MorphActor(int tid, [str playerclass, [str monsterclass, [int duration, [int style, [str morphflash, [str unmorphflash]]]]]])";
|
||||
//Music_Change = "void Music_Change(str music, int pattern)";
|
||||
NamedScriptWait = "void NamedScriptWait(str script)";
|
||||
Net = "Script expression Net";
|
||||
NoiseAlert = "NoiseAlert(target_tid, emiter_tid)";
|
||||
|
@ -292,16 +291,12 @@ keywords
|
|||
Plat_UpNearestWaitDownStay = "Plat_UpNearestWaitDownStay(tag, speed, delay)";
|
||||
Plat_UpWaitDownStay = "Plat_UpWaitDownStay(tag, speed, delay)";
|
||||
PlayActorSound = "void PlayActorSound(int tid, int sound, int channel, fixed volume, bool looping, fixed attenuation)";
|
||||
//Player_SetTeam = "Player_SetTeam(team)";
|
||||
//PlayerArmorpoints = "int PlayerArmorpoints(void)";
|
||||
PlayerClass = "int PlayerClass(int playernumber)";
|
||||
PlayerCount = "int PlayerCount(void)\nReturns the number of players currently in the game";
|
||||
PlayerFrags = "int PlayerFrags(void)";
|
||||
//PlayerHealth = "int PlayerHealth(void)";
|
||||
PlayerInGame = "bool PlayerInGame(int playernumber)\nReturns true if the player [0..7] is in the game";
|
||||
PlayerIsBot = "bool PlayerIsBot(int playernumber)\nReturns TRUE if the player [0..7] is a bot and FALSE if not";
|
||||
PlayerNumber = "int PlayerNumber(void)\nReturns the player number for the player who activated the script, starting at 0.\nFor scripts that were not activated by a player, PlayerNumber will return -1.";
|
||||
//PlayerTeam = "int PlayerTeam(void)";
|
||||
PlayMovie = "PlayMovie(moviename)";
|
||||
PlaySound = "void PlaySound(int tid, str sound, int channel, fixed volume, bool looping, fixed attenuation)";
|
||||
Polyobj_DoorSlide = "Polyobj_DoorSlide(po, speed, angle, dist, delay)";
|
||||
|
@ -325,12 +320,7 @@ keywords
|
|||
Radius_Quake = "Radius_Quake(intensity, duration, damrad, tremrad, tid)";
|
||||
Radius_Quake2 = "void Radius_Quake2(int tid, int intensity, int duration, int damrad, int tremrad, str sound)";
|
||||
Random = "int Random(int min, int max)";
|
||||
//RedCount = "RedCount()";
|
||||
//RedReturn = "Script expression RedReturn";
|
||||
//RedScore = "RedScore()";
|
||||
//RedTeamCount = "RedTeamCount()";
|
||||
//RedTeamScore = "RedTeamScore()";
|
||||
ReplaceTextures = "void ReplaceTextures(str oldtexturename, str newtexturename [, int flags])\nReplaces all occurences of oldtexturename with newtexturename.\nNOT_ flags can be used.";
|
||||
ReplaceTextures = "void ReplaceTextures(str oldtexturename, str newtexturename[, int flags])\nReplaces all occurences of oldtexturename with newtexturename.\nNOT_ flags can be used.";
|
||||
Respawn = "Script expression Respawn";
|
||||
Restart = "Restart";
|
||||
Return = "Return";
|
||||
|
@ -368,57 +358,56 @@ keywords
|
|||
SetActorPitch = "void SetActorPitch(int tid, int pitch)\nSets the actor's Pitch.\npitch: a fixed point angle in the range of 0.0 to 1.0.";
|
||||
SetActorPosition = "bool SetActorPosition(int tid, fixed x, fixed y, fixed z, bool fog)\nThis function sets the x, y, and z coordinates of the specified actor, with or without teleport fog.\nReturns TRUE if the actor position was changed successfully.";
|
||||
SetActorProperty = "void SetActorProperty(int tid, int property, [int|float|str] value)\nproperty: one of the APROP_ properties.";
|
||||
SetActorState = "int SetActorState(int tid, str statename [, bool exact])\nForces the actor(s) with the matching tid into the specified state, as defined in Decorate.\nIf tid is 0, the activator is affected.\nThe exact parameter specifies whether or not partial state name matches are accepted.";
|
||||
SetActorState = "int SetActorState(int tid, str statename[, bool exact])\nForces the actor(s) with the matching tid into the specified state, as defined in Decorate.\nIf tid is 0, the activator is affected.\nThe exact parameter specifies whether or not partial state name matches are accepted.";
|
||||
SetActorVelocity = "bool SetActorVelocity(int tid, fixed velx, fixed vely, fixed velz, bool add, bool setbob)\nChanges actor velocity.\ntid: TID of things to affect. If 0, the activator is used.\nvelx, vely, velz: The desired velocity for the affected things.\nadd: If true, each affected actor's velocity is modified by the velx, vely\nand velz parameters, rather than replaced by them.\nsetbob: If true, the speed adjustment influences the bobbing of any concerned player actor.";
|
||||
SetAirControl = "void SetAirControl(fixed amount)\nSets how well the player can move while in the air.\nThe default amount is 0.00390625.";
|
||||
SetAirSupply = "bool SetAirSupply(int playernum, int tics)\nSets the amount of tics remaining in a player's air supply.";
|
||||
SetAmmoCapacity = "void SetAmmoCapacity(str typename, int maxamount)\nSets the maximum amount of a type of ammo the player can carry.";
|
||||
SetCameraToTexture = "void SetCameraToTexture(int cameratid, str texturename, int fov)\nBinds the named texture to the specified camera\n(which does not have to be an actual camera thing).\nThe texture used must be defined as a “cameratexture” in the ANIMDEFS lump.";
|
||||
SetCeilingTrigger = "void SetCeilingTrigger(int tag, int height, int special [, int arg1 [, int arg2 [, int arg3 [, int arg4 [, int arg5]]]]])\nWhen the ceiling specified by tag moves the specified height,\nspecial(arg1, arg2, arg3, arg4, arg5) will be activated.";
|
||||
SetCeilingTrigger = "void SetCeilingTrigger(int tag, int height, int special[, int arg1[, int arg2[, int arg3[, int arg4[, int arg5]]]]])\nWhen the ceiling specified by tag moves the specified height,\nspecial(arg1, arg2, arg3, arg4, arg5) will be activated.";
|
||||
SetCVar = "bool SetCVar(str cvar, int value)\nSets the value of a particular console variable.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, or it is not writable.";
|
||||
SetCVarString = "bool SetCVarString(str cvar, str value)\nSets the value of a particular console variable.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, or it is not writable.";
|
||||
SetFloorTrigger = "SetFloorTrigger(tag, height, special, arg1, arg2, arg3, arg4, arg5)";
|
||||
SetFont = "void SetFont(str fontlump)\nSets the current font (only within the script) to fontlump";
|
||||
SetGlobalFogParameter = "SetGlobalFogParameter(property, value)";
|
||||
SetGravity = "void SetGravity(fixed amount)\nThis function sets the global gravity of an entire level.\nDefault is 800.0";
|
||||
SetHUDClipRect = "void SetHUDClipRect(int x, int y, int width, int height [, int wrapwidth])\nSets the clipping rectangle for future HUD messages.";
|
||||
SetHUDClipRect = "void SetHUDClipRect(int x, int y, int width, int height[, int wrapwidth])\nSets the clipping rectangle for future HUD messages.";
|
||||
SetHudSize = "void SetHudSize(int width, int height, bool statusbar)\nCauses text messages to be stretched or shrunk to match the size\nthey would appear if the user's resolution was width by height.";
|
||||
SetHUDWrapWidth = "void SetHudWrapWidth(int wrapwidth)\nSets the wrapping width for future HUD messages without altering the clipping rectangle.\nIf you set the wrapping width to 0, messages will wrap\nto the full width of the HUD, as normal.";
|
||||
SetLineActivation = "void SetLineActivation(int lineid, int activation)\nSets the line activation flags of the line with the specified id.\nlineid: The id of the line of which to set the activation flags\nactivation: SPAC_ flags to set. Multiple flags can be set by using the pipe character | between the constant names.";
|
||||
SetLineBlocking = "void SetLineBlocking (int lineid, int setting)\nDEPRECATED!\nUse Line_SetBlocking instead!";
|
||||
SetLineMonsterBlocking = "void SetLineMonsterBlocking(int lineid, int setting)\nDEPRECATED!\nUse Line_SetBlocking instead!";
|
||||
SetLineSpecial = "void SetLineSpecial(int lineid, int special [, int arg0 [, int arg1 [, int arg2 [, int arg3 [, int arg4]]]]])\nSetLineSpecial will change the special on all lines with the line id number specified.";
|
||||
SetLineSpecial = "void SetLineSpecial(int lineid, int special[, int arg0[, int arg1[, int arg2[, int arg3[, int arg4]]]]])\nSetLineSpecial will change the special on all lines with the line id number specified.";
|
||||
SetLineTexture = "void SetLineTexture(int lineid, int line_side, int sidedef_texture, str texturename)\nSetLineTexture will change the specified texture on all lines with the line id number specified\nline_side: SIDE_ flags can be used.\nsidedef_texture: TEXTURE_ flags can be used.\ntexturename: the texture that will be set on the line. Use '-' to remove a texture.";
|
||||
SetMarineSprite = "void SetMarineSprite(int tid, str actorclass)\nChanges a Scripted Marine's sprite to match the sprite\nused in the specified actor's spawn state.";
|
||||
SetMarineWeapon = "void SetMarineWeapon(int tid, int weapon)\nSets a Scripted Marine's weapon on the fly.\nweapon: one of MARINEWEAPON_ flags";
|
||||
SetMugShotState = "void SetMugShotState(str state)\nSets the state of the mug shot in SBARINFO status bars.\nThe state you set will only be interrupted by damage or if the player\npicks up a weapon, provided the mugshot supports it.";
|
||||
SetMusic = "void SetMusic(str song [, int order [, int unused]])";
|
||||
SetMusic = "void SetMusic(str song[, int order[, int unused]])";
|
||||
SetPlayerProperty = "SetPlayerProperty(who, set, which)";
|
||||
SetPointer = "bool SetPointer(int assign_slot, int tid[, int pointer_selector[, int flags]])\nSet the value of one of the caller's stored pointers.";
|
||||
SetResultValue = "void SetResultValue(int value)";
|
||||
SetSkyScrollSpeed = "void SetSkyScrollSpeed(int sky, fixed skyspeed)\nChanges the scrolling speed of a sky.\nThis is useful in conjunction with ChangeSky.\nsky: either 1 or 2.\nskyspeed: the desired scrolling speed.";
|
||||
SetTeleFog = "void SetTeleFog(int tid, str telefogsrcclass, str telefogdestclass";
|
||||
SetThingSpecial = "void SetThingSpecial(int tid, int special [, int arg0 [, int arg1 [, int arg2 [, int arg3 [, int arg4]]]]])\nSets the special for any things with the same TID.\nThis is similar to Thing_SetSpecial, except it can only be used from ACS,\nand it can set all of a thing's special arguments.\nIf tid is 0, then the activator is used.";
|
||||
SetThingSpecial = "void SetThingSpecial(int tid, int special[, int arg0[, int arg1[, int arg2[, int arg3[, int arg4]]]]])\nSets the special for any things with the same TID.\nThis is similar to Thing_SetSpecial, except it can only be used from ACS,\nand it can set all of a thing's special arguments.\nIf tid is 0, then the activator is used.";
|
||||
SetUserArray = "void SetUserArray(int tid, str name, int pos, int value)\nSets one of the affected actor's user array-bound variables.";
|
||||
SetUserCVar = "bool SetUserCVar(int playernumber, str cvar, int value)\nSets the console variable of a particular player.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, it is not writable, or the player doesn't exist.";
|
||||
SetUserCVarString = "bool SetUserCVarString(int playernumber, str cvar, str value)\nSets the console variable of a particular player.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, it is not writable, or the player doesn't exist.";
|
||||
SetUserVariable = "void SetUserVariable(int tid, str name, int value)\nSets one of the affected actor's user variables.";
|
||||
SetWeapon = "bool SetWeapon(str weaponname)\nSets the player's current weapon to weaponname.\nReturns TRUE if the weapon was set successfully, and FALSE if not.";
|
||||
sin = "fixed Sin(int angle)";
|
||||
//SinglePlayer = "int SinglePlayer(void)";
|
||||
SoundSequence = "void SoundSequence(str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
|
||||
SoundSequenceOnActor = "void SoundSequenceOnActor(int tid, str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
|
||||
SoundSequenceOnPolyObj = "void SoundSequenceOnPolyobj(int polynum, str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
|
||||
SoundSequenceOnSector = "void SoundSequenceOnSector(int tag, str sndseq, int location)\nPlays a sound sequence defined in SNDSEQ lump.";
|
||||
SoundVolume = "void SoundVolume(int tid, int channel, fixed volume)\nChanges the volume of the currently playing sound by the actor(s) with the specified tid.\nIf tid is 0, the sound volume change is done to the sound being played by the activator of the script.";
|
||||
Spawn = "int Spawn(str classname, fixed x, fixed y, fixed z [, int tid [, int angle]])\nSpawns an actor at the given X, Y and Z coordinates.\nOptionally a TID and a byte angle can be specified.";
|
||||
SpawnForced = "int SpawnForced(str classname, fixed x, fixed y, fixed z [, int tid [, int angle]])\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe return value is the number of things spawned.";
|
||||
SpawnDecal = "int SpawnDecal(int tid, str decalname, int flags [, fixed angle = 0.0 [, fixed zoffset = 0.0 [, fixed distance = 64.0]]])\nCreates a decal on a wall by tracing a line from the actor with the\nspecified tid until hitting said wall, on which the decal is then created.\nIf tid is 0, the tracing is done from the activator of the script.\ndecalname: The name of the decal to create, as defined in DECALDEF.\nflags: use SDF_ flags\nThe return value of the function is the number of decals spawned.";
|
||||
Spawn = "int Spawn(str classname, fixed x, fixed y, fixed z[, int tid[, int angle]])\nSpawns an actor at the given X, Y and Z coordinates.\nOptionally a TID and a byte angle can be specified.";
|
||||
SpawnForced = "int SpawnForced(str classname, fixed x, fixed y, fixed z[, int tid[, int angle]])\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe return value is the number of things spawned.";
|
||||
SpawnDecal = "int SpawnDecal(int tid, str decalname, int flags[, fixed angle = 0.0[, fixed zoffset = 0.0[, fixed distance = 64.0]]])\nCreates a decal on a wall by tracing a line from the actor with the\nspecified tid until hitting said wall, on which the decal is then created.\nIf tid is 0, the tracing is done from the activator of the script.\ndecalname: The name of the decal to create, as defined in DECALDEF.\nflags: use SDF_ flags\nThe return value of the function is the number of decals spawned.";
|
||||
SpawnProjectile = "void SpawnProjectile(int tid, string type, int angle, int speed, int vspeed, int gravity, int newtid)";
|
||||
SpawnSpot = "int SpawnSpot(str classname, int spottid [, int tid [, int angle]])\nRequires a MapSpot at the location where you want the Actor to spawn.\nThe return value is the number of things spawned.";
|
||||
SpawnSpotFacing = "int SpawnSpotFacing(str classname, int spottid [, int tid])\nRequires a MapSpot at the location where you want the Actor to spawn.\nThe thing will assume the angle of the mapspot it is spawned to.\nThe return value is the number of things spawned.";
|
||||
SpawnSpotFacingForced = "int SpawnSpotFacingForced(str classname, int spottid [, int tid])\nRequires a MapSpot at the location where you want the Actor to spawn.\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe thing will assume the angle of the mapspot it is spawned to.\nThe return value is the number of things spawned.";
|
||||
SpawnSpotForced = "int SpawnSpotForced(str classname, int spottid [, int tid [, int angle]])\nRequires a MapSpot at the location where you want the Actor to spawn.\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe return value is the number of things spawned.";
|
||||
SpawnSpot = "int SpawnSpot(str classname, int spottid[, int tid[, int angle]])\nRequires a MapSpot at the location where you want the Actor to spawn.\nThe return value is the number of things spawned.";
|
||||
SpawnSpotFacing = "int SpawnSpotFacing(str classname, int spottid[, int tid])\nRequires a MapSpot at the location where you want the Actor to spawn.\nThe thing will assume the angle of the mapspot it is spawned to.\nThe return value is the number of things spawned.";
|
||||
SpawnSpotFacingForced = "int SpawnSpotFacingForced(str classname, int spottid[, int tid])\nRequires a MapSpot at the location where you want the Actor to spawn.\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe thing will assume the angle of the mapspot it is spawned to.\nThe return value is the number of things spawned.";
|
||||
SpawnSpotForced = "int SpawnSpotForced(str classname, int spottid[, int tid[, int angle]])\nRequires a MapSpot at the location where you want the Actor to spawn.\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe return value is the number of things spawned.";
|
||||
Special = "Special";
|
||||
Sqrt = "int Sqrt(int number)";
|
||||
Stairs_BuildDown = "Stairs_BuildDown(tag, speed, height, delay, reset)";
|
||||
|
@ -429,9 +418,9 @@ keywords
|
|||
StartConversation = "StartConversation(talker_tid, facetalker)";
|
||||
StopSound = "void StopSound(int tid, int channel)\nStops the sound currently playing on the specified channel for the actor with matching tid";
|
||||
str = "Str expression";
|
||||
StrCmp = "int StrCmp(str string1, str string2 [, int maxcomparenum])\nCompares the two strings passed in arguments string1 and string2 character by character.\nIf maxcomparenum is specified, it only compares up to maxcomparenum characters of each string.";
|
||||
StrCpy = "bool StrCpy(a:destination, string source [, int source_index])\nCopy a source string to a destination array as a series of characters.\nOptionally, the copy can start from a given index in the source string.\nReturns TRUE if the entire string (or substring) was successfully copied to the array;\nFALSE if the copy ran out of room or if a negative source_index was given.";
|
||||
StrIcmp = "int StrCmp(str string1, str string2 [, int maxcomparenum])\nStrIcmp is case-insensitive version of StrCmp";
|
||||
StrCmp = "int StrCmp(str string1, str string2[, int maxcomparenum])\nCompares the two strings passed in arguments string1 and string2 character by character.\nIf maxcomparenum is specified, it only compares up to maxcomparenum characters of each string.";
|
||||
StrCpy = "bool StrCpy(a:destination, string source[, int source_index])\nCopy a source string to a destination array as a series of characters.\nOptionally, the copy can start from a given index in the source string.\nReturns TRUE if the entire string (or substring) was successfully copied to the array;\nFALSE if the copy ran out of room or if a negative source_index was given.";
|
||||
StrIcmp = "int StrCmp(str string1, str string2[, int maxcomparenum])\nStrIcmp is case-insensitive version of StrCmp";
|
||||
StrLeft = "str StrLeft(str string, int length)\nCreates a new string containing the length first characters of string.\nIf string does not exist, an empty string is returned.\nIf string is shorter than length characters, the entire string is returned.";
|
||||
StrLen = "int StrLen(str string)";
|
||||
StrMid = "str StrMid(str string, int start, int length)\nCreates a new string containing the length characters of string starting from the one at position start.\nIf string does not exist or is shorter than start characters, an empty string is returned. \nIf string is shorter than start + length characters, the entire substring beginning at start is returned.";
|
||||
|
@ -443,8 +432,6 @@ keywords
|
|||
TagWait = "void TagWait(int tag)";
|
||||
TakeActorInventory = "void TakeActorInventory(int tid, str inventory_item, int amount)\nThis function will take the amount of items from the specified actor.\nTakeActorInventory can remove items that are flagged as undroppable.";
|
||||
TakeInventory = "void TakeInventory(str inventory_item, int amount)\nThis function will take the number of items specified from the activator.\nTakeInventory can remove items that are flagged as undroppable.";
|
||||
//Team_GivePoints = "Team_GivePoints(team, points, announce)";
|
||||
//Team_Score = "Team_Score(points, nogrin)";
|
||||
Teleport = "Teleport(tid, tag, nosourcefog)";
|
||||
Teleport_EndGame = "Teleport_EndGame()";
|
||||
Teleport_NewMap = "Teleport_NewMap(map, pos, face)";
|
||||
|
@ -487,7 +474,7 @@ keywords
|
|||
ThrustThingZ = "ThrustThingZ(tid, speed, up_or_down, add_or_set)";
|
||||
Timer = "int Timer(void)";
|
||||
TranslucentLine = "TranslucentLine(lineid, amount, additive, moreflags)";
|
||||
UniqueTID = "int UniqueTID([int tid [, int limit]])";
|
||||
UniqueTID = "int UniqueTID([int tid[, int limit]])";
|
||||
Unloading = "Script expression Unloading";
|
||||
UnMorphActor = "int UnMorphActor (int tid[, bool force])";
|
||||
Until = "Until(expression)";
|
||||
|
@ -841,7 +828,6 @@ constants
|
|||
MRF_WHENINVULNERABLE;
|
||||
NO;
|
||||
NO_CHANGE;
|
||||
//NO_TEAM;
|
||||
NOT_BOTTOM;
|
||||
NOT_CEILING;
|
||||
NOT_FLOOR;
|
||||
|
@ -1241,8 +1227,6 @@ constants
|
|||
T_YELLOWKEYCARD;
|
||||
T_YELLOWSKULLKEY;
|
||||
T_ZOMBIE;
|
||||
//TEAM_BLUE;
|
||||
//TEAM_RED;
|
||||
TEXFLAG_ADDOFFSET;
|
||||
TEXFLAG_BOTTOM;
|
||||
TEXFLAG_MIDDLE;
|
||||
|
|
|
@ -167,7 +167,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
{
|
||||
Text = (showfullname ? Icon.DisplayName : Icon.ShortName);
|
||||
if(General.Settings.ShowTextureSizes && Icon.IsPreviewLoaded)
|
||||
imagesize = Icon.ScaledWidth + "x" + Icon.ScaledHeight;
|
||||
imagesize = Math.Abs(Icon.ScaledWidth) + "x" + Math.Abs(Icon.ScaledHeight);
|
||||
}
|
||||
|
||||
// Comparer
|
||||
|
|
|
@ -196,8 +196,10 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
}
|
||||
|
||||
//mxd
|
||||
protected void DisplayImageSize(float width, float height)
|
||||
protected void DisplayImageSize(float width, float height)
|
||||
{
|
||||
width = Math.Abs(width);
|
||||
height = Math.Abs(height);
|
||||
labelSize.Text = (width > 0 && height > 0) ? width + "x" + height : string.Empty;
|
||||
ImageSelectorControl_EnabledChanged(this, EventArgs.Empty);
|
||||
}
|
||||
|
|
|
@ -557,7 +557,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
if(General.Settings.ShowTextureSizes && texture.ImageState == ImageLoadState.Ready && !(texture is UnknownImage))
|
||||
{
|
||||
sizelabel.Visible = true;
|
||||
sizelabel.Text = texture.ScaledWidth + "x" + texture.ScaledHeight;
|
||||
sizelabel.Text = Math.Abs(texture.ScaledWidth) + "x" + Math.Abs(texture.ScaledHeight);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -358,7 +358,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
&& !string.IsNullOrEmpty(texture.Name) && !(texture is UnknownImage))
|
||||
{
|
||||
label.Visible = true;
|
||||
label.Text = texture.ScaledWidth + "x" + texture.ScaledHeight;
|
||||
label.Text = Math.Abs(texture.ScaledWidth) + "x" + Math.Abs(texture.ScaledHeight);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1472,20 +1472,40 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
// Apply texture offsets
|
||||
public void ApplyTextureOffsetChange(int dx, int dy)
|
||||
{
|
||||
Dictionary<Sidedef, int> donesides = new Dictionary<Sidedef, int>(selectedobjects.Count);
|
||||
List<IVisualEventReceiver> objs = GetSelectedObjects(false, true, false, false);
|
||||
foreach(IVisualEventReceiver i in objs)
|
||||
|
||||
//mxd. Because Upper/Middle/Lower textures offsets should be threated separately in UDMF
|
||||
if(General.Map.UDMF)
|
||||
{
|
||||
BaseVisualGeometrySidedef vs = i as BaseVisualGeometrySidedef; //mxd
|
||||
|
||||
if(i is BaseVisualGeometrySidedef)
|
||||
Dictionary<BaseVisualGeometrySidedef, bool> donesides = new Dictionary<BaseVisualGeometrySidedef, bool>(selectedobjects.Count);
|
||||
foreach(IVisualEventReceiver i in objs)
|
||||
{
|
||||
if(!donesides.ContainsKey(vs.Sidedef))
|
||||
if(!(i is BaseVisualGeometrySidedef)) continue;
|
||||
BaseVisualGeometrySidedef vs = i as BaseVisualGeometrySidedef; //mxd
|
||||
if(!donesides.ContainsKey(vs))
|
||||
{
|
||||
//mxd. added scaling by texture scale
|
||||
if(vs.Texture.UsedInMap) //mxd. Otherwise it's MissingTexture3D and we probably don't want to drag that
|
||||
vs.OnChangeTextureOffset((int)(dx / vs.Texture.Scale.x), (int)(dy / vs.Texture.Scale.y), false);
|
||||
donesides.Add((i as BaseVisualGeometrySidedef).Sidedef, 0);
|
||||
|
||||
donesides.Add(vs, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Dictionary<Sidedef, bool> donesides = new Dictionary<Sidedef, bool>(selectedobjects.Count);
|
||||
foreach(IVisualEventReceiver i in objs)
|
||||
{
|
||||
if(!(i is BaseVisualGeometrySidedef)) continue;
|
||||
BaseVisualGeometrySidedef vs = i as BaseVisualGeometrySidedef; //mxd
|
||||
if(!donesides.ContainsKey(vs.Sidedef))
|
||||
{
|
||||
//mxd. added scaling by texture scale
|
||||
if(vs.Texture.UsedInMap) //mxd. Otherwise it's MissingTexture3D and we probably don't want to drag that
|
||||
vs.OnChangeTextureOffset((int)(dx / vs.Texture.Scale.x), (int)(dy / vs.Texture.Scale.y), false);
|
||||
|
||||
donesides.Add(vs.Sidedef, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3629,10 +3649,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
switch(start.GeometryType)
|
||||
{
|
||||
case VisualGeometryType.WALL_UPPER:
|
||||
ystartalign += Tools.GetSidedefTopOffsetY(start.Sidedef, start.Sidedef.Fields.GetValue("offsety_top", 0.0f), first.scaleY, false);//mxd
|
||||
ystartalign += Tools.GetSidedefTopOffsetY(start.Sidedef, start.Sidedef.Fields.GetValue("offsety_top", 0.0f), first.scaleY / scaley, false);//mxd
|
||||
break;
|
||||
case VisualGeometryType.WALL_MIDDLE:
|
||||
ystartalign += Tools.GetSidedefMiddleOffsetY(start.Sidedef, start.Sidedef.Fields.GetValue("offsety_mid", 0.0f), first.scaleY, false);//mxd
|
||||
ystartalign += Tools.GetSidedefMiddleOffsetY(start.Sidedef, start.Sidedef.Fields.GetValue("offsety_mid", 0.0f), first.scaleY / scaley, false);//mxd
|
||||
break;
|
||||
case VisualGeometryType.WALL_MIDDLE_3D: //mxd. 3d-floors are not affected by Lower/Upper unpegged flags
|
||||
ystartalign += first.controlSide.OffsetY - (start.Sidedef.Sector.CeilHeight - first.ceilingHeight);
|
||||
|
@ -3640,7 +3660,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
ystartalign += first.controlSide.Fields.GetValue("offsety_mid", 0.0f);
|
||||
break;
|
||||
case VisualGeometryType.WALL_LOWER:
|
||||
ystartalign += Tools.GetSidedefBottomOffsetY(start.Sidedef, start.Sidedef.Fields.GetValue("offsety_bottom", 0.0f), first.scaleY, false);//mxd
|
||||
ystartalign += Tools.GetSidedefBottomOffsetY(start.Sidedef, start.Sidedef.Fields.GetValue("offsety_bottom", 0.0f), first.scaleY / scaley, false);//mxd
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -3715,7 +3735,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
offset -= j.sidedef.OffsetX;
|
||||
|
||||
if(matchtop)
|
||||
j.sidedef.Fields["offsetx_top"] = new UniValue(UniversalType.Float, offset % General.Map.Data.GetTextureImage(j.sidedef.LongHighTexture).Width); //texture.Width
|
||||
j.sidedef.Fields["offsetx_top"] = new UniValue(UniversalType.Float, offset % General.Map.Data.GetTextureImage(j.sidedef.LongHighTexture).Width);
|
||||
if(matchbottom)
|
||||
j.sidedef.Fields["offsetx_bottom"] = new UniValue(UniversalType.Float, offset % General.Map.Data.GetTextureImage(j.sidedef.LongLowTexture).Width);
|
||||
if(matchmid)
|
||||
|
@ -3737,9 +3757,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
offset = (float)Math.Round(offset); //mxd
|
||||
|
||||
if(matchtop)
|
||||
j.sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, Tools.GetSidedefTopOffsetY(j.sidedef, offset, j.scaleY, true) % General.Map.Data.GetTextureImage(j.sidedef.LongHighTexture).Height); //mxd
|
||||
j.sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, Tools.GetSidedefTopOffsetY(j.sidedef, offset, j.scaleY / scaley, true) % General.Map.Data.GetTextureImage(j.sidedef.LongHighTexture).Height); //mxd
|
||||
if(matchbottom)
|
||||
j.sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, Tools.GetSidedefBottomOffsetY(j.sidedef, offset, j.scaleY, true) % General.Map.Data.GetTextureImage(j.sidedef.LongLowTexture).Height); //mxd
|
||||
j.sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, Tools.GetSidedefBottomOffsetY(j.sidedef, offset, j.scaleY / scaley, true) % General.Map.Data.GetTextureImage(j.sidedef.LongLowTexture).Height); //mxd
|
||||
if(matchmid)
|
||||
{
|
||||
//mxd. Side is part of a 3D floor?
|
||||
|
@ -3752,7 +3772,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
else
|
||||
{
|
||||
ImageData midtex = General.Map.Data.GetTextureImage(j.sidedef.LongMiddleTexture);
|
||||
offset = Tools.GetSidedefMiddleOffsetY(j.sidedef, offset, j.scaleY, true) % midtex.Height;
|
||||
offset = Tools.GetSidedefMiddleOffsetY(j.sidedef, offset, j.scaleY / scaley, true) % midtex.Height;
|
||||
|
||||
if(j.sidedef.Other != null && !j.sidedef.IsFlagSet("wrapmidtex") && !j.sidedef.Line.IsFlagSet("wrapmidtex"))
|
||||
{
|
||||
|
@ -3821,9 +3841,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
offset = (float)Math.Round(offset); //mxd
|
||||
|
||||
if(matchtop)
|
||||
j.sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, Tools.GetSidedefTopOffsetY(j.sidedef, offset, j.scaleY, true) % General.Map.Data.GetTextureImage(j.sidedef.LongHighTexture).Height); //mxd
|
||||
j.sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, Tools.GetSidedefTopOffsetY(j.sidedef, offset, j.scaleY / scaley, true) % General.Map.Data.GetTextureImage(j.sidedef.LongHighTexture).Height); //mxd
|
||||
if(matchbottom)
|
||||
j.sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, Tools.GetSidedefBottomOffsetY(j.sidedef, offset, j.scaleY, true) % General.Map.Data.GetTextureImage(j.sidedef.LongLowTexture).Height); //mxd
|
||||
j.sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, Tools.GetSidedefBottomOffsetY(j.sidedef, offset, j.scaleY / scaley, true) % General.Map.Data.GetTextureImage(j.sidedef.LongLowTexture).Height); //mxd
|
||||
if(matchmid)
|
||||
{
|
||||
//mxd. Side is part of a 3D floor?
|
||||
|
@ -3835,7 +3855,27 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
|||
}
|
||||
else
|
||||
{
|
||||
j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, Tools.GetSidedefMiddleOffsetY(j.sidedef, offset, j.scaleY, true) % General.Map.Data.GetTextureImage(j.sidedef.LongMiddleTexture).Height); //mxd
|
||||
ImageData midtex = General.Map.Data.GetTextureImage(j.sidedef.LongMiddleTexture);
|
||||
offset = Tools.GetSidedefMiddleOffsetY(j.sidedef, offset, j.scaleY / scaley, true) % midtex.Height;
|
||||
|
||||
if(j.sidedef.Other != null && !j.sidedef.IsFlagSet("wrapmidtex") && !j.sidedef.Line.IsFlagSet("wrapmidtex"))
|
||||
{
|
||||
//mxd. This should be doublesided non-wrapped line. Find the nearset aligned position
|
||||
float curoffset = UDMFTools.GetFloat(j.sidedef.Fields, "offsety_mid");
|
||||
offset += midtex.Height * (int)Math.Round((curoffset - offset) / midtex.Height);
|
||||
|
||||
// Make sure the surface stays between floor and ceiling
|
||||
if(offset < -midtex.Height)
|
||||
{
|
||||
offset += midtex.Height;
|
||||
}
|
||||
else if(offset + midtex.Height > j.sidedef.GetMiddleHeight())
|
||||
{
|
||||
offset -= midtex.Height;
|
||||
}
|
||||
}
|
||||
|
||||
j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,11 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using CodeImp.DoomBuilder.Map;
|
||||
using CodeImp.DoomBuilder.Windows;
|
||||
|
||||
namespace CodeImp.DoomBuilder.SoundPropagationMode
|
||||
{
|
||||
public partial class ReverbsPickerForm : Form
|
||||
public partial class ReverbsPickerForm : DelayedForm
|
||||
{
|
||||
private struct ReverbListItem
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue