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