mirror of
https://github.com/ZDoom/gzdoom.git
synced 2025-01-18 15:42:34 +00:00
- ported a few cleanup changes from Gez's recent GZDoom patch.
- fixed: The sound channel structure should not store the sound table's entries' addresses which are stored in a TArray by pointer. In case the array gets reallocated very bad things can happen. This caused some bad crashes when GZDoom's FraggleScript implementation created new sound entries. SVN r2114 (trunk)
This commit is contained in:
parent
5ce77dfbb8
commit
6c9748b603
5 changed files with 265 additions and 276 deletions
|
@ -110,15 +110,7 @@ DEFINE_SPECIAL(Light_Stop, 117, 1, 1, 1)
|
|||
DEFINE_SPECIAL(Thing_Damage, 119, 2, 3, 3)
|
||||
DEFINE_SPECIAL(Radius_Quake, 120, 5, 5, 5) // Earthquake
|
||||
DEFINE_SPECIAL(Line_SetIdentification, 121, -1, -1, 5)
|
||||
#if 0 // Skull Tag specials that might be added later
|
||||
Thing_SetGravity, 122, -1, -1)
|
||||
Thing_ReverseGravity, 123, -1, -1)
|
||||
Thing_RevertGravity, 124, -1, -1)
|
||||
#endif
|
||||
DEFINE_SPECIAL(Thing_Move, 125, 2, 3, 3)
|
||||
#if 0 // Skull Tag special I doubt I will add
|
||||
Thing_SetSprite, 126, -1, -1)
|
||||
#endif
|
||||
DEFINE_SPECIAL(Thing_SetSpecial, 127, 5, 5, 5)
|
||||
DEFINE_SPECIAL(ThrustThingZ, 128, 4, 4, 4)
|
||||
DEFINE_SPECIAL(UsePuzzleItem, 129, 2, 5, 5)
|
||||
|
|
|
@ -161,6 +161,8 @@ FGameConfigFile::FGameConfigFile ()
|
|||
// Create auto-load sections, so users know what's available.
|
||||
// Note that this totem pole is the reverse of the order that
|
||||
// they will appear in the file.
|
||||
CreateSectionAtStart("Harmony.Autoload");
|
||||
CreateSectionAtStart("UrbanBrawl.Autoload");
|
||||
CreateSectionAtStart("Chex3.Autoload");
|
||||
CreateSectionAtStart("Chex.Autoload");
|
||||
CreateSectionAtStart("Strife.Autoload");
|
||||
|
|
512
src/p_lnspec.cpp
512
src/p_lnspec.cpp
|
@ -2966,262 +2966,262 @@ FUNC(LS_StartConversation)
|
|||
|
||||
lnSpecFunc LineSpecials[256] =
|
||||
{
|
||||
LS_NOP,
|
||||
LS_NOP, // Polyobj_StartLine,
|
||||
LS_Polyobj_RotateLeft,
|
||||
LS_Polyobj_RotateRight,
|
||||
LS_Polyobj_Move,
|
||||
LS_NOP, // Polyobj_ExplicitLine
|
||||
LS_Polyobj_MoveTimes8,
|
||||
LS_Polyobj_DoorSwing,
|
||||
LS_Polyobj_DoorSlide,
|
||||
LS_NOP, // Line_Horizon
|
||||
LS_Door_Close,
|
||||
LS_Door_Open,
|
||||
LS_Door_Raise,
|
||||
LS_Door_LockedRaise,
|
||||
LS_Door_Animated,
|
||||
LS_Autosave,
|
||||
LS_NOP, // Transfer_WallLight
|
||||
LS_Thing_Raise,
|
||||
LS_StartConversation,
|
||||
LS_Thing_Stop,
|
||||
LS_Floor_LowerByValue,
|
||||
LS_Floor_LowerToLowest,
|
||||
LS_Floor_LowerToNearest,
|
||||
LS_Floor_RaiseByValue,
|
||||
LS_Floor_RaiseToHighest,
|
||||
LS_Floor_RaiseToNearest,
|
||||
LS_Stairs_BuildDown,
|
||||
LS_Stairs_BuildUp,
|
||||
LS_Floor_RaiseAndCrush,
|
||||
LS_Pillar_Build,
|
||||
LS_Pillar_Open,
|
||||
LS_Stairs_BuildDownSync,
|
||||
LS_Stairs_BuildUpSync,
|
||||
LS_ForceField,
|
||||
LS_ClearForceField,
|
||||
LS_Floor_RaiseByValueTimes8,
|
||||
LS_Floor_LowerByValueTimes8,
|
||||
LS_Floor_MoveToValue,
|
||||
LS_Ceiling_Waggle,
|
||||
LS_Teleport_ZombieChanger,
|
||||
LS_Ceiling_LowerByValue,
|
||||
LS_Ceiling_RaiseByValue,
|
||||
LS_Ceiling_CrushAndRaise,
|
||||
LS_Ceiling_LowerAndCrush,
|
||||
LS_Ceiling_CrushStop,
|
||||
LS_Ceiling_CrushRaiseAndStay,
|
||||
LS_Floor_CrushStop,
|
||||
LS_Ceiling_MoveToValue,
|
||||
LS_NOP, // Sector_Attach3dMidtex
|
||||
LS_GlassBreak,
|
||||
LS_NOP, // 50: ExtraFloor_LightOnly
|
||||
LS_Sector_SetLink,
|
||||
LS_Scroll_Wall,
|
||||
LS_Line_SetTextureOffset,
|
||||
LS_Sector_ChangeFlags,
|
||||
LS_Line_SetBlocking,
|
||||
LS_Line_SetTextureScale,
|
||||
LS_NOP, // 57
|
||||
LS_NOP, // 58
|
||||
LS_NOP, // 59
|
||||
LS_Plat_PerpetualRaise,
|
||||
LS_Plat_Stop,
|
||||
LS_Plat_DownWaitUpStay,
|
||||
LS_Plat_DownByValue,
|
||||
LS_Plat_UpWaitDownStay,
|
||||
LS_Plat_UpByValue,
|
||||
LS_Floor_LowerInstant,
|
||||
LS_Floor_RaiseInstant,
|
||||
LS_Floor_MoveToValueTimes8,
|
||||
LS_Ceiling_MoveToValueTimes8,
|
||||
LS_Teleport,
|
||||
LS_Teleport_NoFog,
|
||||
LS_ThrustThing,
|
||||
LS_DamageThing,
|
||||
LS_Teleport_NewMap,
|
||||
LS_Teleport_EndGame,
|
||||
LS_TeleportOther,
|
||||
LS_TeleportGroup,
|
||||
LS_TeleportInSector,
|
||||
LS_NOP, // 79
|
||||
LS_ACS_Execute,
|
||||
LS_ACS_Suspend,
|
||||
LS_ACS_Terminate,
|
||||
LS_ACS_LockedExecute,
|
||||
LS_ACS_ExecuteWithResult,
|
||||
LS_ACS_LockedExecuteDoor,
|
||||
LS_NOP, // 86
|
||||
LS_NOP, // 87
|
||||
LS_NOP, // 88
|
||||
LS_NOP, // 89
|
||||
LS_Polyobj_OR_RotateLeft,
|
||||
LS_Polyobj_OR_RotateRight,
|
||||
LS_Polyobj_OR_Move,
|
||||
LS_Polyobj_OR_MoveTimes8,
|
||||
LS_Pillar_BuildAndCrush,
|
||||
LS_FloorAndCeiling_LowerByValue,
|
||||
LS_FloorAndCeiling_RaiseByValue,
|
||||
LS_NOP, // 97
|
||||
LS_NOP, // 98
|
||||
LS_NOP, // 99
|
||||
LS_NOP, // Scroll_Texture_Left
|
||||
LS_NOP, // Scroll_Texture_Right
|
||||
LS_NOP, // Scroll_Texture_Up
|
||||
LS_NOP, // Scroll_Texture_Down
|
||||
LS_NOP, // 104
|
||||
LS_NOP, // 105
|
||||
LS_NOP, // 106
|
||||
LS_NOP, // 107
|
||||
LS_NOP, // 108
|
||||
LS_Light_ForceLightning,
|
||||
LS_Light_RaiseByValue,
|
||||
LS_Light_LowerByValue,
|
||||
LS_Light_ChangeToValue,
|
||||
LS_Light_Fade,
|
||||
LS_Light_Glow,
|
||||
LS_Light_Flicker,
|
||||
LS_Light_Strobe,
|
||||
LS_Light_Stop,
|
||||
LS_NOP, // 118
|
||||
LS_Thing_Damage,
|
||||
LS_Radius_Quake,
|
||||
LS_NOP, // Line_SetIdentification
|
||||
LS_NOP, // Thing_SetGravity // [BC] Start
|
||||
LS_NOP, // Thing_ReverseGravity
|
||||
LS_NOP, // Thing_RevertGravity
|
||||
LS_Thing_Move,
|
||||
LS_NOP, // Thing_SetSprite
|
||||
LS_Thing_SetSpecial,
|
||||
LS_ThrustThingZ, // [BC] End
|
||||
LS_UsePuzzleItem,
|
||||
LS_Thing_Activate,
|
||||
LS_Thing_Deactivate,
|
||||
LS_Thing_Remove,
|
||||
LS_Thing_Destroy,
|
||||
LS_Thing_Projectile,
|
||||
LS_Thing_Spawn,
|
||||
LS_Thing_ProjectileGravity,
|
||||
LS_Thing_SpawnNoFog,
|
||||
LS_Floor_Waggle,
|
||||
LS_Thing_SpawnFacing,
|
||||
LS_Sector_ChangeSound,
|
||||
LS_NOP, // 141 Music_Pause // [BC] Start
|
||||
LS_NOP, // 142 Music_Change
|
||||
LS_NOP, // 143 Player_RemoveItem
|
||||
LS_NOP, // 144 Player_GiveItem
|
||||
LS_NOP, // 145 Player_SetTeam
|
||||
LS_NOP, // 146 Player_SetLeader
|
||||
LS_NOP, // 147 Team_InitFP
|
||||
LS_NOP, // 148 TeleportAll
|
||||
LS_NOP, // 149 TeleportAll_NoFog
|
||||
LS_NOP, // 150 Team_GiveFP
|
||||
LS_NOP, // 151 Team_UseFP
|
||||
LS_NOP, // 152 Team_Score
|
||||
LS_NOP, // 153 Team_Init
|
||||
LS_Teleport_NoStop,
|
||||
LS_NOP, // 155 Team_RemoveItem
|
||||
LS_NOP, // 156 Team_GiveItem // [BC] End
|
||||
LS_NOP, // 157
|
||||
LS_NOP, // 158 (FS_Execute in GZDoom)
|
||||
LS_NOP, // 159 (Sector_SetPlaneReflection in GZDoom)
|
||||
LS_NOP, // 160 (Sector_Set3DFloor in GZDoom and Vavoom)
|
||||
LS_NOP, // 161 (Sector_SetContents in GZDoom and Vavoom)
|
||||
LS_NOP, // 162
|
||||
LS_NOP, // 163
|
||||
LS_NOP, // 164
|
||||
LS_NOP, // 165
|
||||
LS_NOP, // 166
|
||||
LS_NOP, // 167
|
||||
LS_NOP, // 168
|
||||
LS_Generic_Crusher2,
|
||||
LS_Sector_SetCeilingScale2,
|
||||
LS_Sector_SetFloorScale2,
|
||||
LS_Plat_UpNearestWaitDownStay,
|
||||
LS_NoiseAlert,
|
||||
LS_SendToCommunicator,
|
||||
LS_Thing_ProjectileIntercept,
|
||||
LS_Thing_ChangeTID,
|
||||
LS_Thing_Hate,
|
||||
LS_Thing_ProjectileAimed,
|
||||
LS_ChangeSkill,
|
||||
LS_Thing_SetTranslation,
|
||||
LS_NOP, // Plane_Align
|
||||
LS_NOP, // Line_Mirror
|
||||
LS_Line_AlignCeiling,
|
||||
LS_Line_AlignFloor,
|
||||
LS_Sector_SetRotation,
|
||||
LS_Sector_SetCeilingPanning,
|
||||
LS_Sector_SetFloorPanning,
|
||||
LS_Sector_SetCeilingScale,
|
||||
LS_Sector_SetFloorScale,
|
||||
LS_NOP, // Static_Init
|
||||
LS_SetPlayerProperty,
|
||||
LS_Ceiling_LowerToHighestFloor,
|
||||
LS_Ceiling_LowerInstant,
|
||||
LS_Ceiling_RaiseInstant,
|
||||
LS_Ceiling_CrushRaiseAndStayA,
|
||||
LS_Ceiling_CrushAndRaiseA,
|
||||
LS_Ceiling_CrushAndRaiseSilentA,
|
||||
LS_Ceiling_RaiseByValueTimes8,
|
||||
LS_Ceiling_LowerByValueTimes8,
|
||||
LS_Generic_Floor,
|
||||
LS_Generic_Ceiling,
|
||||
LS_Generic_Door,
|
||||
LS_Generic_Lift,
|
||||
LS_Generic_Stairs,
|
||||
LS_Generic_Crusher,
|
||||
LS_Plat_DownWaitUpStayLip,
|
||||
LS_Plat_PerpetualRaiseLip,
|
||||
LS_TranslucentLine,
|
||||
LS_NOP, // Transfer_Heights
|
||||
LS_NOP, // Transfer_FloorLight
|
||||
LS_NOP, // Transfer_CeilingLight
|
||||
LS_Sector_SetColor,
|
||||
LS_Sector_SetFade,
|
||||
LS_Sector_SetDamage,
|
||||
LS_Teleport_Line,
|
||||
LS_Sector_SetGravity,
|
||||
LS_Stairs_BuildUpDoom,
|
||||
LS_Sector_SetWind,
|
||||
LS_Sector_SetFriction,
|
||||
LS_Sector_SetCurrent,
|
||||
LS_Scroll_Texture_Both,
|
||||
LS_NOP, // Scroll_Texture_Model
|
||||
LS_Scroll_Floor,
|
||||
LS_Scroll_Ceiling,
|
||||
LS_NOP, // Scroll_Texture_Offsets
|
||||
LS_ACS_ExecuteAlways,
|
||||
LS_PointPush_SetForce,
|
||||
LS_Plat_RaiseAndStayTx0,
|
||||
LS_Thing_SetGoal,
|
||||
LS_Plat_UpByValueStayTx,
|
||||
LS_Plat_ToggleCeiling,
|
||||
LS_Light_StrobeDoom,
|
||||
LS_Light_MinNeighbor,
|
||||
LS_Light_MaxNeighbor,
|
||||
LS_Floor_TransferTrigger,
|
||||
LS_Floor_TransferNumeric,
|
||||
LS_ChangeCamera,
|
||||
LS_Floor_RaiseToLowestCeiling,
|
||||
LS_Floor_RaiseByValueTxTy,
|
||||
LS_Floor_RaiseByTexture,
|
||||
LS_Floor_LowerToLowestTxTy,
|
||||
LS_Floor_LowerToHighest,
|
||||
LS_Exit_Normal,
|
||||
LS_Exit_Secret,
|
||||
LS_Elevator_RaiseToNearest,
|
||||
LS_Elevator_MoveToFloor,
|
||||
LS_Elevator_LowerToNearest,
|
||||
LS_HealThing,
|
||||
LS_Door_CloseWaitOpen,
|
||||
LS_Floor_Donut,
|
||||
LS_FloorAndCeiling_LowerRaise,
|
||||
LS_Ceiling_RaiseToNearest,
|
||||
LS_Ceiling_LowerToLowest,
|
||||
LS_Ceiling_LowerToFloor,
|
||||
LS_Ceiling_CrushRaiseAndStaySilA
|
||||
/* 0 */ LS_NOP,
|
||||
/* 1 */ LS_NOP, // Polyobj_StartLine,
|
||||
/* 2 */ LS_Polyobj_RotateLeft,
|
||||
/* 3 */ LS_Polyobj_RotateRight,
|
||||
/* 4 */ LS_Polyobj_Move,
|
||||
/* 5 */ LS_NOP, // Polyobj_ExplicitLine
|
||||
/* 6 */ LS_Polyobj_MoveTimes8,
|
||||
/* 7 */ LS_Polyobj_DoorSwing,
|
||||
/* 8 */ LS_Polyobj_DoorSlide,
|
||||
/* 9 */ LS_NOP, // Line_Horizon
|
||||
/* 10 */ LS_Door_Close,
|
||||
/* 11 */ LS_Door_Open,
|
||||
/* 12 */ LS_Door_Raise,
|
||||
/* 13 */ LS_Door_LockedRaise,
|
||||
/* 14 */ LS_Door_Animated,
|
||||
/* 15 */ LS_Autosave,
|
||||
/* 16 */ LS_NOP, // Transfer_WallLight
|
||||
/* 17 */ LS_Thing_Raise,
|
||||
/* 18 */ LS_StartConversation,
|
||||
/* 19 */ LS_Thing_Stop,
|
||||
/* 20 */ LS_Floor_LowerByValue,
|
||||
/* 21 */ LS_Floor_LowerToLowest,
|
||||
/* 22 */ LS_Floor_LowerToNearest,
|
||||
/* 23 */ LS_Floor_RaiseByValue,
|
||||
/* 24 */ LS_Floor_RaiseToHighest,
|
||||
/* 25 */ LS_Floor_RaiseToNearest,
|
||||
/* 26 */ LS_Stairs_BuildDown,
|
||||
/* 27 */ LS_Stairs_BuildUp,
|
||||
/* 28 */ LS_Floor_RaiseAndCrush,
|
||||
/* 29 */ LS_Pillar_Build,
|
||||
/* 30 */ LS_Pillar_Open,
|
||||
/* 31 */ LS_Stairs_BuildDownSync,
|
||||
/* 32 */ LS_Stairs_BuildUpSync,
|
||||
/* 33 */ LS_ForceField,
|
||||
/* 34 */ LS_ClearForceField,
|
||||
/* 35 */ LS_Floor_RaiseByValueTimes8,
|
||||
/* 36 */ LS_Floor_LowerByValueTimes8,
|
||||
/* 37 */ LS_Floor_MoveToValue,
|
||||
/* 38 */ LS_Ceiling_Waggle,
|
||||
/* 39 */ LS_Teleport_ZombieChanger,
|
||||
/* 40 */ LS_Ceiling_LowerByValue,
|
||||
/* 41 */ LS_Ceiling_RaiseByValue,
|
||||
/* 42 */ LS_Ceiling_CrushAndRaise,
|
||||
/* 43 */ LS_Ceiling_LowerAndCrush,
|
||||
/* 44 */ LS_Ceiling_CrushStop,
|
||||
/* 45 */ LS_Ceiling_CrushRaiseAndStay,
|
||||
/* 46 */ LS_Floor_CrushStop,
|
||||
/* 47 */ LS_Ceiling_MoveToValue,
|
||||
/* 48 */ LS_NOP, // Sector_Attach3dMidtex
|
||||
/* 49 */ LS_GlassBreak,
|
||||
/* 50 */ LS_NOP, // ExtraFloor_LightOnly
|
||||
/* 51 */ LS_Sector_SetLink,
|
||||
/* 52 */ LS_Scroll_Wall,
|
||||
/* 53 */ LS_Line_SetTextureOffset,
|
||||
/* 54 */ LS_Sector_ChangeFlags,
|
||||
/* 55 */ LS_Line_SetBlocking,
|
||||
/* 56 */ LS_Line_SetTextureScale,
|
||||
/* 57 */ LS_NOP, // Sector_SetPortal
|
||||
/* 58 */ LS_NOP,
|
||||
/* 59 */ LS_NOP,
|
||||
/* 60 */ LS_Plat_PerpetualRaise,
|
||||
/* 61 */ LS_Plat_Stop,
|
||||
/* 62 */ LS_Plat_DownWaitUpStay,
|
||||
/* 63 */ LS_Plat_DownByValue,
|
||||
/* 64 */ LS_Plat_UpWaitDownStay,
|
||||
/* 65 */ LS_Plat_UpByValue,
|
||||
/* 66 */ LS_Floor_LowerInstant,
|
||||
/* 67 */ LS_Floor_RaiseInstant,
|
||||
/* 68 */ LS_Floor_MoveToValueTimes8,
|
||||
/* 69 */ LS_Ceiling_MoveToValueTimes8,
|
||||
/* 70 */ LS_Teleport,
|
||||
/* 71 */ LS_Teleport_NoFog,
|
||||
/* 72 */ LS_ThrustThing,
|
||||
/* 73 */ LS_DamageThing,
|
||||
/* 74 */ LS_Teleport_NewMap,
|
||||
/* 75 */ LS_Teleport_EndGame,
|
||||
/* 76 */ LS_TeleportOther,
|
||||
/* 77 */ LS_TeleportGroup,
|
||||
/* 78 */ LS_TeleportInSector,
|
||||
/* 79 */ LS_NOP,
|
||||
/* 80 */ LS_ACS_Execute,
|
||||
/* 81 */ LS_ACS_Suspend,
|
||||
/* 82 */ LS_ACS_Terminate,
|
||||
/* 83 */ LS_ACS_LockedExecute,
|
||||
/* 84 */ LS_ACS_ExecuteWithResult,
|
||||
/* 85 */ LS_ACS_LockedExecuteDoor,
|
||||
/* 86 */ LS_NOP,
|
||||
/* 87 */ LS_NOP,
|
||||
/* 88 */ LS_NOP,
|
||||
/* 89 */ LS_NOP,
|
||||
/* 90 */ LS_Polyobj_OR_RotateLeft,
|
||||
/* 91 */ LS_Polyobj_OR_RotateRight,
|
||||
/* 92 */ LS_Polyobj_OR_Move,
|
||||
/* 93 */ LS_Polyobj_OR_MoveTimes8,
|
||||
/* 94 */ LS_Pillar_BuildAndCrush,
|
||||
/* 95 */ LS_FloorAndCeiling_LowerByValue,
|
||||
/* 96 */ LS_FloorAndCeiling_RaiseByValue,
|
||||
/* 97 */ LS_NOP,
|
||||
/* 98 */ LS_NOP,
|
||||
/* 99 */ LS_NOP,
|
||||
/* 100 */ LS_NOP, // Scroll_Texture_Left
|
||||
/* 101 */ LS_NOP, // Scroll_Texture_Right
|
||||
/* 102 */ LS_NOP, // Scroll_Texture_Up
|
||||
/* 103 */ LS_NOP, // Scroll_Texture_Down
|
||||
/* 104 */ LS_NOP,
|
||||
/* 105 */ LS_NOP,
|
||||
/* 106 */ LS_NOP,
|
||||
/* 107 */ LS_NOP,
|
||||
/* 108 */ LS_NOP,
|
||||
/* 109 */ LS_Light_ForceLightning,
|
||||
/* 110 */ LS_Light_RaiseByValue,
|
||||
/* 111 */ LS_Light_LowerByValue,
|
||||
/* 112 */ LS_Light_ChangeToValue,
|
||||
/* 113 */ LS_Light_Fade,
|
||||
/* 114 */ LS_Light_Glow,
|
||||
/* 115 */ LS_Light_Flicker,
|
||||
/* 116 */ LS_Light_Strobe,
|
||||
/* 117 */ LS_Light_Stop,
|
||||
/* 118 */ LS_NOP,
|
||||
/* 119 */ LS_Thing_Damage,
|
||||
/* 120 */ LS_Radius_Quake,
|
||||
/* 121 */ LS_NOP, // Line_SetIdentification
|
||||
/* 122 */ LS_NOP,
|
||||
/* 123 */ LS_NOP,
|
||||
/* 124 */ LS_NOP,
|
||||
/* 125 */ LS_Thing_Move,
|
||||
/* 126 */ LS_NOP,
|
||||
/* 127 */ LS_Thing_SetSpecial,
|
||||
/* 128 */ LS_ThrustThingZ,
|
||||
/* 129 */ LS_UsePuzzleItem,
|
||||
/* 130 */ LS_Thing_Activate,
|
||||
/* 131 */ LS_Thing_Deactivate,
|
||||
/* 132 */ LS_Thing_Remove,
|
||||
/* 133 */ LS_Thing_Destroy,
|
||||
/* 134 */ LS_Thing_Projectile,
|
||||
/* 135 */ LS_Thing_Spawn,
|
||||
/* 136 */ LS_Thing_ProjectileGravity,
|
||||
/* 137 */ LS_Thing_SpawnNoFog,
|
||||
/* 138 */ LS_Floor_Waggle,
|
||||
/* 139 */ LS_Thing_SpawnFacing,
|
||||
/* 140 */ LS_Sector_ChangeSound,
|
||||
/* 141 */ LS_NOP, // 141 Music_Pause // [BC] Start
|
||||
/* 142 */ LS_NOP, // 142 Music_Change
|
||||
/* 143 */ LS_NOP, // 143 Player_RemoveItem
|
||||
/* 144 */ LS_NOP, // 144 Player_GiveItem
|
||||
/* 145 */ LS_NOP, // 145 Player_SetTeam
|
||||
/* 146 */ LS_NOP, // 146 Player_SetLeader
|
||||
/* 147 */ LS_NOP, // 147 Team_InitFP
|
||||
/* 148 */ LS_NOP, // 148 TeleportAll
|
||||
/* 149 */ LS_NOP, // 149 TeleportAll_NoFog
|
||||
/* 150 */ LS_NOP, // 150 Team_GiveFP
|
||||
/* 151 */ LS_NOP, // 151 Team_UseFP
|
||||
/* 152 */ LS_NOP, // 152 Team_Score
|
||||
/* 153 */ LS_NOP, // 153 Team_Init
|
||||
/* 154 */ LS_Teleport_NoStop,
|
||||
/* 155 */ LS_NOP, // 155 Team_RemoveItem
|
||||
/* 156 */ LS_NOP, // 156 Team_GiveItem // [BC] End
|
||||
/* 157 */ LS_NOP, // SetGlobalFogParameter // in GZDoom
|
||||
/* 158 */ LS_NOP, // FS_Execute in GZDoom
|
||||
/* 159 */ LS_NOP, // Sector_SetPlaneReflection in GZDoom
|
||||
/* 160 */ LS_NOP, // Sector_Set3DFloor in GZDoom and Vavoom
|
||||
/* 161 */ LS_NOP, // Sector_SetContents in GZDoom and Vavoom
|
||||
/* 162 */ LS_NOP,
|
||||
/* 163 */ LS_NOP,
|
||||
/* 164 */ LS_NOP,
|
||||
/* 165 */ LS_NOP,
|
||||
/* 166 */ LS_NOP,
|
||||
/* 167 */ LS_NOP,
|
||||
/* 168 */ LS_NOP,
|
||||
/* 169 */ LS_Generic_Crusher2,
|
||||
/* 170 */ LS_Sector_SetCeilingScale2,
|
||||
/* 171 */ LS_Sector_SetFloorScale2,
|
||||
/* 172 */ LS_Plat_UpNearestWaitDownStay,
|
||||
/* 173 */ LS_NoiseAlert,
|
||||
/* 174 */ LS_SendToCommunicator,
|
||||
/* 175 */ LS_Thing_ProjectileIntercept,
|
||||
/* 176 */ LS_Thing_ChangeTID,
|
||||
/* 177 */ LS_Thing_Hate,
|
||||
/* 178 */ LS_Thing_ProjectileAimed,
|
||||
/* 179 */ LS_ChangeSkill,
|
||||
/* 180 */ LS_Thing_SetTranslation,
|
||||
/* 181 */ LS_NOP, // Plane_Align
|
||||
/* 182 */ LS_NOP, // Line_Mirror
|
||||
/* 183 */ LS_Line_AlignCeiling,
|
||||
/* 184 */ LS_Line_AlignFloor,
|
||||
/* 185 */ LS_Sector_SetRotation,
|
||||
/* 186 */ LS_Sector_SetCeilingPanning,
|
||||
/* 187 */ LS_Sector_SetFloorPanning,
|
||||
/* 188 */ LS_Sector_SetCeilingScale,
|
||||
/* 189 */ LS_Sector_SetFloorScale,
|
||||
/* 190 */ LS_NOP, // Static_Init
|
||||
/* 191 */ LS_SetPlayerProperty,
|
||||
/* 192 */ LS_Ceiling_LowerToHighestFloor,
|
||||
/* 193 */ LS_Ceiling_LowerInstant,
|
||||
/* 194 */ LS_Ceiling_RaiseInstant,
|
||||
/* 195 */ LS_Ceiling_CrushRaiseAndStayA,
|
||||
/* 196 */ LS_Ceiling_CrushAndRaiseA,
|
||||
/* 197 */ LS_Ceiling_CrushAndRaiseSilentA,
|
||||
/* 198 */ LS_Ceiling_RaiseByValueTimes8,
|
||||
/* 199 */ LS_Ceiling_LowerByValueTimes8,
|
||||
/* 200 */ LS_Generic_Floor,
|
||||
/* 201 */ LS_Generic_Ceiling,
|
||||
/* 202 */ LS_Generic_Door,
|
||||
/* 203 */ LS_Generic_Lift,
|
||||
/* 204 */ LS_Generic_Stairs,
|
||||
/* 205 */ LS_Generic_Crusher,
|
||||
/* 206 */ LS_Plat_DownWaitUpStayLip,
|
||||
/* 207 */ LS_Plat_PerpetualRaiseLip,
|
||||
/* 208 */ LS_TranslucentLine,
|
||||
/* 209 */ LS_NOP, // Transfer_Heights
|
||||
/* 210 */ LS_NOP, // Transfer_FloorLight
|
||||
/* 211 */ LS_NOP, // Transfer_CeilingLight
|
||||
/* 212 */ LS_Sector_SetColor,
|
||||
/* 213 */ LS_Sector_SetFade,
|
||||
/* 214 */ LS_Sector_SetDamage,
|
||||
/* 215 */ LS_Teleport_Line,
|
||||
/* 216 */ LS_Sector_SetGravity,
|
||||
/* 217 */ LS_Stairs_BuildUpDoom,
|
||||
/* 218 */ LS_Sector_SetWind,
|
||||
/* 219 */ LS_Sector_SetFriction,
|
||||
/* 220 */ LS_Sector_SetCurrent,
|
||||
/* 221 */ LS_Scroll_Texture_Both,
|
||||
/* 222 */ LS_NOP, // Scroll_Texture_Model
|
||||
/* 223 */ LS_Scroll_Floor,
|
||||
/* 224 */ LS_Scroll_Ceiling,
|
||||
/* 225 */ LS_NOP, // Scroll_Texture_Offsets
|
||||
/* 226 */ LS_ACS_ExecuteAlways,
|
||||
/* 227 */ LS_PointPush_SetForce,
|
||||
/* 228 */ LS_Plat_RaiseAndStayTx0,
|
||||
/* 229 */ LS_Thing_SetGoal,
|
||||
/* 230 */ LS_Plat_UpByValueStayTx,
|
||||
/* 231 */ LS_Plat_ToggleCeiling,
|
||||
/* 232 */ LS_Light_StrobeDoom,
|
||||
/* 233 */ LS_Light_MinNeighbor,
|
||||
/* 234 */ LS_Light_MaxNeighbor,
|
||||
/* 235 */ LS_Floor_TransferTrigger,
|
||||
/* 236 */ LS_Floor_TransferNumeric,
|
||||
/* 237 */ LS_ChangeCamera,
|
||||
/* 238 */ LS_Floor_RaiseToLowestCeiling,
|
||||
/* 239 */ LS_Floor_RaiseByValueTxTy,
|
||||
/* 240 */ LS_Floor_RaiseByTexture,
|
||||
/* 241 */ LS_Floor_LowerToLowestTxTy,
|
||||
/* 242 */ LS_Floor_LowerToHighest,
|
||||
/* 243 */ LS_Exit_Normal,
|
||||
/* 244 */ LS_Exit_Secret,
|
||||
/* 245 */ LS_Elevator_RaiseToNearest,
|
||||
/* 246 */ LS_Elevator_MoveToFloor,
|
||||
/* 247 */ LS_Elevator_LowerToNearest,
|
||||
/* 248 */ LS_HealThing,
|
||||
/* 249 */ LS_Door_CloseWaitOpen,
|
||||
/* 250 */ LS_Floor_Donut,
|
||||
/* 251 */ LS_FloorAndCeiling_LowerRaise,
|
||||
/* 252 */ LS_Ceiling_RaiseToNearest,
|
||||
/* 253 */ LS_Ceiling_LowerToLowest,
|
||||
/* 254 */ LS_Ceiling_LowerToFloor,
|
||||
/* 255 */ LS_Ceiling_CrushRaiseAndStaySilA
|
||||
};
|
||||
|
||||
#define DEFINE_SPECIAL(name, num, min, max, mmax) {#name, num, min, max, mmax},
|
||||
|
|
|
@ -187,7 +187,7 @@ void S_NoiseDebug (void)
|
|||
color = (chan->ChanFlags & CHAN_LOOP) ? CR_BROWN : CR_GREY;
|
||||
|
||||
// Name
|
||||
Wads.GetLumpName (temp, chan->SfxInfo->lumpnum);
|
||||
Wads.GetLumpName (temp, S_sfx[chan->SoundID].lumpnum);
|
||||
temp[8] = 0;
|
||||
screen->DrawText (SmallFont, color, 0, y, temp, TAG_DONE);
|
||||
|
||||
|
@ -1068,7 +1068,6 @@ static FSoundChan *S_StartSound(AActor *actor, const sector_t *sec, const FPolyO
|
|||
{
|
||||
chan->SoundID = sound_id;
|
||||
chan->OrgID = FSoundID(org_id);
|
||||
chan->SfxInfo = sfx;
|
||||
chan->EntChannel = channel;
|
||||
chan->Volume = volume;
|
||||
chan->ChanFlags |= chanflags;
|
||||
|
@ -1101,10 +1100,9 @@ static FSoundChan *S_StartSound(AActor *actor, const sector_t *sec, const FPolyO
|
|||
void S_RestartSound(FSoundChan *chan)
|
||||
{
|
||||
assert(chan->ChanFlags & CHAN_EVICTED);
|
||||
assert(chan->SfxInfo != NULL);
|
||||
|
||||
FSoundChan *ochan;
|
||||
sfxinfo_t *sfx = chan->SfxInfo;
|
||||
sfxinfo_t *sfx = &S_sfx[chan->SoundID];
|
||||
|
||||
// If this is a singular sound, don't play it if it's already playing.
|
||||
if (sfx->bSingular && S_CheckSingular(chan->SoundID))
|
||||
|
@ -1352,7 +1350,7 @@ bool S_CheckSoundLimit(sfxinfo_t *sfx, const FVector3 &pos, int near_limit, floa
|
|||
|
||||
for (chan = Channels, count = 0; chan != NULL && count < near_limit; chan = chan->NextChan)
|
||||
{
|
||||
if (!(chan->ChanFlags & CHAN_EVICTED) && chan->SfxInfo == sfx)
|
||||
if (!(chan->ChanFlags & CHAN_EVICTED) && &S_sfx[chan->SoundID] == sfx)
|
||||
{
|
||||
FVector3 chanorigin;
|
||||
|
||||
|
@ -1982,10 +1980,10 @@ void S_ChannelEnded(FISoundChannel *ichan)
|
|||
{
|
||||
evicted = true;
|
||||
}
|
||||
else if (schan->SfxInfo != NULL)
|
||||
else
|
||||
{
|
||||
unsigned int pos = GSnd->GetPosition(schan);
|
||||
unsigned int len = GSnd->GetSampleLength(schan->SfxInfo->data);
|
||||
unsigned int len = GSnd->GetSampleLength(S_sfx[schan->SoundID].data);
|
||||
if (pos == 0)
|
||||
{
|
||||
evicted = !!(schan->ChanFlags & CHAN_JUSTSTARTED);
|
||||
|
@ -1995,10 +1993,12 @@ void S_ChannelEnded(FISoundChannel *ichan)
|
|||
evicted = (pos < len);
|
||||
}
|
||||
}
|
||||
/*
|
||||
else
|
||||
{
|
||||
evicted = false;
|
||||
}
|
||||
*/
|
||||
if (!evicted)
|
||||
{
|
||||
S_ReturnChannel(schan);
|
||||
|
@ -2114,10 +2114,6 @@ static FArchive &operator<<(FArchive &arc, FSoundChan &chan)
|
|||
<< chan.Rolloff.MaxDistance
|
||||
<< chan.LimitRange;
|
||||
|
||||
if (arc.IsLoading())
|
||||
{
|
||||
chan.SfxInfo = &S_sfx[chan.SoundID];
|
||||
}
|
||||
return arc;
|
||||
}
|
||||
|
||||
|
|
|
@ -169,7 +169,6 @@ struct FSoundChan : public FISoundChannel
|
|||
{
|
||||
FSoundChan *NextChan; // Next channel in this list.
|
||||
FSoundChan **PrevChan; // Previous channel in this list.
|
||||
sfxinfo_t *SfxInfo; // Sound information.
|
||||
FSoundID SoundID; // Sound ID of playing sound.
|
||||
FSoundID OrgID; // Sound ID of sound used to start this channel.
|
||||
float Volume;
|
||||
|
|
Loading…
Reference in a new issue