From 66b09de431ba8d93943c90f658c989dd09599eca Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Thu, 7 Jul 2022 09:10:14 -0700 Subject: [PATCH] Big commit fixing many regressions since crunch hit. env_sprite has been reworked. multi_manager entities now behave correctly when calling themselves in MULTITHREADED mode. Remove GS_RENDERFX option. Too many entities rely on its functionality anyway. Fixed some rendermode behaviour - ladders will no longer be visible. You can now see the playermodel (and no longer the viewmodel) in mirrors. Fixed a lot of warnings. --- base/src/client/camera.qc | 4 +- base/src/client/cmds.qc | 4 +- base/src/client/defs.h | 4 +- base/src/client/draw.qc | 4 +- base/src/client/entities.qc | 4 +- base/src/client/game_event.qc | 4 +- base/src/client/hud.qc | 4 +- base/src/client/hud_weaponselect.qc | 4 +- base/src/client/init.qc | 4 +- base/src/client/modelevent.qc | 4 +- base/src/client/player.qc | 4 +- base/src/client/progs.src | 1 - base/src/client/scoreboard.qc | 4 +- base/src/client/view.qc | 4 +- base/src/client/viewmodel.qc | 4 +- base/src/server/client.qc | 4 +- base/src/server/damage.qc | 4 +- base/src/server/defs.h | 4 +- base/src/server/flashlight.h | 4 +- base/src/server/flashlight.qc | 4 +- base/src/server/gamerules.h | 4 +- base/src/server/gamerules.qc | 4 +- base/src/server/gamerules_multiplayer.qc | 4 +- base/src/server/gamerules_singleplayer.qc | 4 +- base/src/server/items.h | 4 +- base/src/server/items.qc | 4 +- base/src/server/modelevent.qc | 4 +- base/src/server/player.h | 4 +- base/src/server/player.qc | 4 +- base/src/server/progs.src | 1 - base/src/server/rules.qc | 4 +- base/src/server/server.qc | 4 +- base/src/server/spawn.qc | 4 +- base/src/server/spectator.qc | 4 +- base/src/shared/animations.h | 4 +- base/src/shared/animations.qc | 4 +- base/src/shared/flags.h | 4 +- base/src/shared/fx_blood.qc | 4 +- base/src/shared/fx_breakmodel.qc | 4 +- base/src/shared/fx_corpse.qc | 4 +- base/src/shared/fx_explosion.qc | 4 +- base/src/shared/fx_gibhuman.qc | 4 +- base/src/shared/fx_impact.qc | 4 +- base/src/shared/fx_spark.qc | 4 +- base/src/shared/input.qc | 4 +- base/src/shared/items.h | 4 +- base/src/shared/player.qc | 4 +- base/src/shared/pmove.qc | 4 +- base/src/shared/pmove_water.qc | 4 +- base/src/shared/weapon_baseautomatic.qc | 4 +- base/src/shared/weapon_basemelee.qc | 16 + base/src/shared/weapon_baseprojectile.qc | 4 +- base/src/shared/weapon_basesemi.qc | 4 +- base/src/shared/weapon_baseshotgun.qc | 4 +- base/src/shared/weapon_common.h | 4 +- base/src/shared/weapon_common.qc | 4 +- base/src/shared/weapons.h | 4 +- base/src/shared/weapons.qc | 4 +- base/test_maps.pk3dir/maps/test_bounce.bsp | Bin 0 -> 1591580 bytes base/test_maps.pk3dir/maps/test_bounce.map | 122 ++ .../maps/test_coloredlights.bsp | Bin 0 -> 1584492 bytes .../maps/test_coloredlights.map | 109 + base/test_maps.pk3dir/maps/test_detail.bsp | Bin 0 -> 1596848 bytes base/test_maps.pk3dir/maps/test_detail.map | 219 ++ base/test_maps.pk3dir/maps/test_dlights.bsp | Bin 3181796 -> 1608932 bytes base/test_maps.pk3dir/maps/test_dlights.map | 8 +- base/test_maps.pk3dir/maps/test_dustcloud.bsp | Bin 0 -> 1585744 bytes base/test_maps.pk3dir/maps/test_dustcloud.map | 166 ++ base/test_maps.pk3dir/maps/test_light255.bsp | Bin 0 -> 1581808 bytes base/test_maps.pk3dir/maps/test_light255.map | 97 + .../maps/test_staticprops.bsp | Bin 0 -> 1739028 bytes .../maps/test_staticprops.map | 94 + build.cfg | 2 +- build_engine.sh | 4 +- .../sound/damage_bullet.sndshd | 4 - .../base_sound.pk3dir/sound/env_spark.sndshd | 4 - .../base_sound.pk3dir/sound/footsteps.sndshd | 239 --- .../sound/func_breakable.sndshd | 44 - .../sound/func_button.sndshd | 101 - .../base_sound.pk3dir/sound/func_door.sndshd | 9 - .../sound/func_door_rotating.sndshd | 9 - .../base_sound.pk3dir/sound/func_train.sndshd | 9 - .../base_sound.pk3dir/sound/impacts.sndshd | 79 - .../sound/modelevent_shell.sndshd | 9 - .../base_sound.pk3dir/sound/player.sndshd | 28 - .../base_sound.pk3dir/sound/sentences.txt | 3 + .../base_textures.pk3dir/gfx/background.mat | 22 + platform/base_textures.pk3dir/gfx/palette.lmp | Bin 0 -> 768 bytes src/botlib/bot.h | 4 +- src/botlib/bot.qc | 4 +- src/botlib/bot_chat.qc | 4 +- src/botlib/bot_combat.qc | 4 +- src/botlib/botinfo.h | 4 +- src/botlib/cmd.qc | 4 +- src/botlib/cvar.h | 4 +- src/botlib/defs.h | 42 +- src/botlib/route.qc | 4 +- src/botlib/way.qc | 4 +- src/client/chat.qc | 4 +- src/client/cmd.h | 4 +- src/client/cmd.qc | 4 +- src/client/damage.qc | 4 +- src/client/defs.h | 4 +- src/client/detailtex.qc | 4 +- src/client/efx.h | 4 +- src/client/efx.qc | 4 +- src/client/entities.qc | 4 +- src/client/entry.qc | 4 +- src/client/event.qc | 4 +- src/client/fade.h | 6 +- src/client/fade.qc | 4 +- src/client/fog.qc | 4 +- src/client/font.h | 4 +- src/client/font.qc | 4 +- src/client/modelevent.qc | 4 +- src/client/music.qc | 4 +- src/client/player.qc | 21 +- src/client/predict.qc | 4 +- src/client/prints.qc | 4 +- src/client/sentences.qc | 4 +- src/client/shake.qc | 16 + src/client/sky.qc | 4 +- src/client/text.h | 18 +- src/client/text.qc | 4 +- src/client/textmenu.h | 4 +- src/client/textmenu.qc | 4 +- src/client/titles.qc | 4 +- src/client/util.h | 16 + src/client/util.qc | 15 + src/client/vgui.qc | 4 +- src/client/view.qc | 12 +- src/client/voice.qc | 4 +- src/client/way.qc | 4 +- src/gs-entbase/baseentity.h | 6 +- src/gs-entbase/client.src | 1 - src/gs-entbase/client/defs.h | 4 +- src/gs-entbase/client/env_cubemap.qc | 4 +- src/gs-entbase/client/env_glow.qc | 4 +- src/gs-entbase/client/env_laser.qc | 4 +- src/gs-entbase/client/env_particle.qc | 4 +- src/gs-entbase/client/env_sound.qc | 4 +- src/gs-entbase/client/env_soundscape.qc | 4 +- src/gs-entbase/client/env_sprite.qc | 141 -- src/gs-entbase/client/env_sun.qc | 4 +- src/gs-entbase/client/func_dustcloud.qc | 4 +- src/gs-entbase/client/func_dustmotes.qc | 4 +- src/gs-entbase/client/func_lod.qc | 4 +- src/gs-entbase/client/func_smokevolume.qc | 4 +- src/gs-entbase/client/info_notnull.qc | 4 +- src/gs-entbase/client/infodecal.qc | 4 +- src/gs-entbase/client/light_environment.qc | 4 +- src/gs-entbase/client/point_message.qc | 4 +- src/gs-entbase/client/prop_static.qc | 4 +- src/gs-entbase/client/sky_camera.qc | 4 +- src/gs-entbase/decals.h | 4 +- src/gs-entbase/server.src | 1 - src/gs-entbase/server/NSOutput.h | 4 +- src/gs-entbase/server/NSOutput.qc | 4 +- src/gs-entbase/server/button_target.qc | 4 +- src/gs-entbase/server/cycler.qc | 4 +- src/gs-entbase/server/cycler_sprite.qc | 4 +- src/gs-entbase/server/defs.h | 6 +- src/gs-entbase/server/env_beam.qc | 4 +- src/gs-entbase/server/env_beverage.qc | 4 +- src/gs-entbase/server/env_explosion.qc | 4 +- src/gs-entbase/server/env_fade.qc | 11 +- src/gs-entbase/server/env_global.qc | 4 +- src/gs-entbase/server/env_hudhint.qc | 4 +- src/gs-entbase/server/env_laser.qc | 4 +- src/gs-entbase/server/env_message.qc | 4 +- src/gs-entbase/server/env_render.qc | 6 +- src/gs-entbase/server/env_shake.qc | 4 +- src/gs-entbase/server/env_shooter.qc | 29 +- src/gs-entbase/server/env_spark.qc | 4 +- src/gs-entbase/server/env_sprite.qc | 200 -- src/gs-entbase/server/func_areaportal.qc | 6 +- src/gs-entbase/server/func_breakable.qc | 4 +- src/gs-entbase/server/func_brush.qc | 4 +- src/gs-entbase/server/func_button.qc | 4 +- src/gs-entbase/server/func_conveyor.qc | 4 +- src/gs-entbase/server/func_detail.qc | 4 +- .../server/func_detail_illusionary.qc | 4 +- src/gs-entbase/server/func_door.qc | 4 +- src/gs-entbase/server/func_door_rotating.qc | 4 +- src/gs-entbase/server/func_group.qc | 4 +- src/gs-entbase/server/func_guntarget.qc | 4 +- src/gs-entbase/server/func_healthcharger.qc | 4 +- src/gs-entbase/server/func_lod.qc | 4 +- src/gs-entbase/server/func_mortar_field.qc | 4 +- src/gs-entbase/server/func_pendulum.qc | 4 +- src/gs-entbase/server/func_physbox.qc | 4 +- src/gs-entbase/server/func_plat.qc | 4 +- src/gs-entbase/server/func_platrot.qc | 6 +- src/gs-entbase/server/func_pushable.qc | 4 +- src/gs-entbase/server/func_recharge.qc | 4 +- src/gs-entbase/server/func_rot_button.qc | 4 +- src/gs-entbase/server/func_rotating.qc | 4 +- src/gs-entbase/server/func_tank.qc | 4 +- src/gs-entbase/server/func_tankcontrols.qc | 4 +- src/gs-entbase/server/func_tracktrain.qc | 6 +- .../server/func_tracktraincontrols.qc | 4 +- src/gs-entbase/server/func_train.qc | 4 +- src/gs-entbase/server/func_vehicle.qc | 4 +- src/gs-entbase/server/func_vehiclecontrols.qc | 4 +- src/gs-entbase/server/func_wall_toggle.qc | 4 +- src/gs-entbase/server/game_counter.qc | 4 +- src/gs-entbase/server/game_counter_set.qc | 4 +- src/gs-entbase/server/game_player_equip.qc | 4 +- src/gs-entbase/server/game_text.qc | 4 +- src/gs-entbase/server/gibshooter.qc | 22 +- src/gs-entbase/server/info_intermission.qc | 4 +- src/gs-entbase/server/info_notnull.qc | 4 +- src/gs-entbase/server/info_null.qc | 4 +- src/gs-entbase/server/infodecal.qc | 4 +- src/gs-entbase/server/item_food.qc | 4 +- src/gs-entbase/server/light.qc | 4 +- src/gs-entbase/server/logic_auto.qc | 4 +- src/gs-entbase/server/momentary_door.qc | 4 +- src/gs-entbase/server/momentary_rot_button.qc | 4 +- src/gs-entbase/server/momentarybase.qc | 4 +- src/gs-entbase/server/monster_furniture.qc | 4 +- src/gs-entbase/server/monster_generic.qc | 4 +- src/gs-entbase/server/monstermaker.qc | 4 +- src/gs-entbase/server/multi_manager.qc | 19 +- src/gs-entbase/server/multisource.qc | 4 +- src/gs-entbase/server/path_corner.qc | 4 +- src/gs-entbase/server/path_track.qc | 4 +- src/gs-entbase/server/player_loadsaved.qc | 11 +- src/gs-entbase/server/player_weaponstrip.qc | 4 +- src/gs-entbase/server/point_camera.qc | 4 +- src/gs-entbase/server/prop_door_rotating.qc | 4 +- src/gs-entbase/server/prop_dynamic.qc | 4 +- src/gs-entbase/server/prop_physics.qc | 4 +- src/gs-entbase/server/prop_static.qc | 4 +- src/gs-entbase/server/random_speaker.qc | 4 +- src/gs-entbase/server/random_trigger.qc | 4 +- src/gs-entbase/server/scripted_sentence.qc | 4 +- src/gs-entbase/server/scripted_sequence.qc | 4 +- src/gs-entbase/server/speaker.qc | 7 +- src/gs-entbase/server/stubs.qc | 4 +- src/gs-entbase/server/targ_speaker.qc | 4 +- src/gs-entbase/server/target_cdaudio.qc | 4 +- src/gs-entbase/server/trigger_auto.qc | 4 +- src/gs-entbase/server/trigger_autosave.qc | 4 +- src/gs-entbase/server/trigger_cdaudio.qc | 4 +- src/gs-entbase/server/trigger_changelevel.qc | 4 +- src/gs-entbase/server/trigger_changetarget.qc | 4 +- src/gs-entbase/server/trigger_counter.qc | 9 +- src/gs-entbase/server/trigger_endsection.qc | 4 +- src/gs-entbase/server/trigger_hurt.qc | 4 +- src/gs-entbase/server/trigger_look.qc | 4 +- src/gs-entbase/server/trigger_multiple.qc | 4 +- src/gs-entbase/server/trigger_once.qc | 4 +- src/gs-entbase/server/trigger_playerfreeze.qc | 4 +- src/gs-entbase/server/trigger_push.qc | 4 +- src/gs-entbase/server/trigger_relay.qc | 4 +- src/gs-entbase/server/trigger_teleport.qc | 4 +- src/gs-entbase/server/trigger_transition.qc | 4 +- src/gs-entbase/shared.src | 1 + src/gs-entbase/shared/NSBrushTrigger.h | 4 +- src/gs-entbase/shared/NSBrushTrigger.qc | 6 +- src/gs-entbase/shared/NSEntity.h | 8 +- src/gs-entbase/shared/NSEntity.qc | 4 +- src/gs-entbase/shared/NSIO.h | 4 +- src/gs-entbase/shared/NSIO.qc | 4 +- src/gs-entbase/shared/NSInteractiveSurface.qc | 10 +- src/gs-entbase/shared/NSMonster.h | 4 +- src/gs-entbase/shared/NSMonster.qc | 19 +- src/gs-entbase/shared/NSPhysicsEntity.h | 8 +- src/gs-entbase/shared/NSPhysicsEntity.qc | 24 +- src/gs-entbase/shared/NSPointTrigger.h | 6 +- src/gs-entbase/shared/NSPointTrigger.qc | 6 +- src/gs-entbase/shared/NSProjectile.h | 4 +- src/gs-entbase/shared/NSProjectile.qc | 4 +- src/gs-entbase/shared/NSRenderableEntity.h | 10 +- src/gs-entbase/shared/NSRenderableEntity.qc | 125 +- src/gs-entbase/shared/NSSurfacePropEntity.h | 8 +- src/gs-entbase/shared/NSSurfacePropEntity.qc | 26 +- src/gs-entbase/shared/NSTalkMonster.h | 4 +- src/gs-entbase/shared/NSTalkMonster.qc | 16 +- src/gs-entbase/shared/NSTrigger.h | 6 +- src/gs-entbase/shared/NSTrigger.qc | 4 +- src/gs-entbase/shared/NSVehicle.h | 4 +- src/gs-entbase/shared/NSVehicle.qc | 4 +- src/gs-entbase/shared/ambient_generic.qc | 4 +- src/gs-entbase/shared/baseentity.h | 5 +- src/gs-entbase/shared/decals.qc | 4 +- src/gs-entbase/shared/env_bubbles.qc | 4 +- src/gs-entbase/shared/env_fog_controller.qc | 5 +- src/gs-entbase/shared/env_projectedtexture.qc | 4 +- src/gs-entbase/shared/env_sprite.h | 28 + src/gs-entbase/shared/env_sprite.qc | 386 ++++ src/gs-entbase/shared/func_friction.qc | 4 +- src/gs-entbase/shared/func_illusionary.qc | 4 +- src/gs-entbase/shared/func_ladder.qc | 70 +- src/gs-entbase/shared/func_monitor.qc | 4 +- src/gs-entbase/shared/func_tankmortar.qc | 4 +- src/gs-entbase/shared/func_wall.qc | 4 +- src/gs-entbase/shared/info_particle_system.qc | 4 +- src/gs-entbase/shared/light_dynamic.qc | 6 +- .../shared/prop_physics_multiplayer.qc | 4 +- src/gs-entbase/shared/prop_rope.qc | 4 +- .../shared/prop_vehicle_driveable.qc | 1834 ++++++++--------- src/gs-entbase/shared/spraylogo.qc | 4 +- src/gs-entbase/shared/trigger_camera.qc | 4 +- src/gs-entbase/shared/trigger_gravity.qc | 4 +- src/gs-entbase/shared/worldspawn.qc | 6 +- src/materials/Alien.qc | 4 +- src/materials/Computer.qc | 4 +- src/materials/Concrete.qc | 4 +- src/materials/Dirt.qc | 4 +- src/materials/Flesh.qc | 4 +- src/materials/Foliage.qc | 4 +- src/materials/Glass.qc | 4 +- src/materials/Grate.qc | 4 +- src/materials/Metal.qc | 4 +- src/materials/Sand.qc | 4 +- src/materials/Slosh.qc | 4 +- src/materials/Snow.qc | 4 +- src/materials/Tile.qc | 4 +- src/materials/Vent.qc | 4 +- src/materials/Wood.qc | 4 +- src/menu-fn/background.qc | 16 + src/menu-fn/bitmaps.h | 4 +- src/menu-fn/colors.qc | 4 +- src/menu-fn/defs.h | 4 +- src/menu-fn/entry.qc | 4 +- src/menu-fn/m_addserver.qc | 4 +- src/menu-fn/m_advancedcontrols.qc | 4 +- src/menu-fn/m_advancedcustomize.qc | 4 +- src/menu-fn/m_advancedmpoptions.qc | 4 +- src/menu-fn/m_audio.qc | 4 +- src/menu-fn/m_chatrooms.qc | 4 +- src/menu-fn/m_chatroomslist.qc | 4 +- src/menu-fn/m_configuration.qc | 4 +- src/menu-fn/m_contentcontrol.qc | 4 +- src/menu-fn/m_controls.qc | 4 +- src/menu-fn/m_creategame.qc | 4 +- src/menu-fn/m_creategame_inet.qc | 4 +- src/menu-fn/m_customgame.qc | 4 +- src/menu-fn/m_customize.qc | 4 +- src/menu-fn/m_filter.qc | 4 +- src/menu-fn/m_internetgames.qc | 4 +- src/menu-fn/m_intro.qc | 4 +- src/menu-fn/m_langames.qc | 4 +- src/menu-fn/m_loadgame.qc | 4 +- src/menu-fn/m_main.qc | 4 +- src/menu-fn/m_multiplayer.qc | 4 +- src/menu-fn/m_newgame.qc | 4 +- src/menu-fn/m_spectategames.qc | 4 +- src/menu-fn/m_updates.qc | 4 +- src/menu-fn/m_video.qc | 4 +- src/menu-fn/m_videomodes.qc | 4 +- src/menu-fn/m_videooptions.qc | 4 +- src/menu-fn/m_viewgameinfo.qc | 4 +- src/menu-fn/m_viewreadme.qc | 4 +- src/menu-fn/menu.qc | 4 +- src/menu-fn/strings.h | 4 +- src/menu-fn/strings.qc | 4 +- src/menu-fn/w_3dview.qc | 15 + src/menu-fn/w_checkbox.qc | 4 +- src/menu-fn/w_combobox.qc | 4 +- src/menu-fn/w_dialog.qc | 4 +- src/menu-fn/w_frame.qc | 4 +- src/menu-fn/w_header.qc | 4 +- src/menu-fn/w_label.qc | 4 +- src/menu-fn/w_listbox.qc | 4 +- src/menu-fn/w_mainbutton.qc | 4 +- src/menu-fn/w_modlist.qc | 4 +- src/menu-fn/w_pictureswitch.qc | 4 +- src/menu-fn/w_scrollbar.qc | 4 +- src/menu-fn/w_servers.qc | 4 +- src/menu-fn/w_slider.qc | 4 +- src/menu-fn/w_textbox.qc | 4 +- src/menu-fn/w_textbuffer.qc | 4 +- src/menu-fn/w_updatelist.qc | 4 +- src/menu-fn/widgets.qc | 4 +- src/menu-vgui/background.qc | 41 +- src/menu-vgui/defs.h | 4 +- src/menu-vgui/desktop.qc | 4 +- src/menu-vgui/loading.qc | 4 +- src/menu-vgui/main.h | 4 +- src/menu-vgui/main.qc | 41 +- src/menu-vgui/ui_console.qc | 4 +- src/menu-vgui/ui_createserver.qc | 4 +- src/menu-vgui/ui_fileopen.qc | 4 +- src/menu-vgui/ui_findservers.qc | 4 +- src/menu-vgui/ui_modelviewer.qc | 4 +- src/menu-vgui/ui_musicplayer.qc | 4 +- src/menu-vgui/ui_newgame.qc | 4 +- src/menu-vgui/ui_quitgame.qc | 4 +- src/platform/achievements.h | 15 + src/platform/achievements.qc | 16 + src/platform/defs.h | 16 + src/platform/master.h | 5 +- src/platform/master.qc | 4 +- src/platform/modserver.h | 4 +- src/platform/modserver.qc | 4 +- src/platform/music.h | 4 +- src/platform/music.qc | 4 +- src/platform/richpresence.h | 6 +- src/platform/richpresence.qc | 18 +- src/platform/servers.h | 4 +- src/platform/servers.qc | 4 +- src/platform/tcp.h | 4 +- src/platform/tcp.qc | 4 +- src/platform/util.h | 4 +- src/platform/util.qc | 4 +- src/plugins/banner.qc | 4 +- src/plugins/chatfilter.qc | 4 +- src/plugins/chatsounds.qc | 4 +- src/plugins/connectsounds.qc | 4 +- src/plugins/ircbridge.qc | 4 +- src/plugins/voxannouncer.qc | 4 +- src/server/client.qc | 4 +- src/server/entry.qc | 4 +- src/server/footsteps.qc | 4 +- src/server/gamerules.qc | 4 +- src/server/hlmaterials.qc | 4 +- src/server/logging.qc | 4 +- src/server/mapcycle.qc | 4 +- src/server/modelevent.qc | 4 +- src/server/nodes.qc | 4 +- src/server/plugins.qc | 4 +- src/server/sentences.qc | 4 +- src/server/skill.qc | 4 +- src/server/spawn.qc | 4 +- src/server/traceattack.qc | 4 +- src/server/vote.qc | 4 +- src/server/weapons.qc | 4 +- src/shared/NSClient.h | 16 + src/shared/NSClient.qc | 16 + src/shared/NSClientPlayer.h | 4 +- src/shared/NSClientPlayer.qc | 4 +- src/shared/NSClientSpectator.h | 16 + src/shared/NSClientSpectator.qc | 5 +- src/shared/NSMaterial.h | 4 +- src/shared/NSMaterial.qc | 9 +- src/shared/colors.h | 6 +- src/shared/damage.h | 10 +- src/shared/defs.h | 16 +- src/shared/entities.h | 4 +- src/shared/events.h | 4 +- src/shared/flags.h | 4 +- src/shared/global.h | 18 +- src/shared/hitmesh.h | 4 +- src/shared/materials.h | 4 +- src/shared/math.h | 4 +- src/shared/math.qc | 4 +- src/shared/memory.h | 4 +- src/shared/platform.h | 15 + src/shared/player_pmove.qc | 15 + src/shared/pmove.h | 4 +- src/shared/pmove.qc | 4 +- src/shared/pmove_custom.qc | 4 +- src/shared/propdata.h | 4 +- src/shared/propdata.qc | 4 +- src/shared/sound.h | 4 +- src/shared/sound.qc | 28 +- src/shared/surfaceproperties.h | 4 +- src/shared/surfaceproperties.qc | 4 +- src/vgui/ui.qc | 4 +- src/vgui/ui_3dview.qc | 4 +- src/vgui/ui_button.qc | 4 +- src/vgui/ui_checkbox.qc | 4 +- src/vgui/ui_label.qc | 4 +- src/vgui/ui_list.qc | 4 +- src/vgui/ui_listbox.qc | 4 +- src/vgui/ui_menubutton.qc | 4 +- src/vgui/ui_pic.qc | 4 +- src/vgui/ui_radio.qc | 4 +- src/vgui/ui_scrollbar.qc | 4 +- src/vgui/ui_slider.qc | 4 +- src/vgui/ui_tabview.qc | 4 +- src/vgui/ui_textbox.qc | 4 +- src/vgui/ui_window.qc | 4 +- src/xr/NSXRInput.h | 6 +- src/xr/NSXRInput.qc | 6 +- src/xr/NSXRSpace.h | 6 +- src/xr/NSXRSpace.qc | 6 +- src/xr/defs.h | 4 +- src/xr/xr.h | 6 +- src/xr/xr.qc | 4 +- 483 files changed, 3479 insertions(+), 3061 deletions(-) create mode 100644 base/test_maps.pk3dir/maps/test_bounce.bsp create mode 100644 base/test_maps.pk3dir/maps/test_bounce.map create mode 100644 base/test_maps.pk3dir/maps/test_coloredlights.bsp create mode 100644 base/test_maps.pk3dir/maps/test_coloredlights.map create mode 100644 base/test_maps.pk3dir/maps/test_detail.bsp create mode 100644 base/test_maps.pk3dir/maps/test_detail.map create mode 100644 base/test_maps.pk3dir/maps/test_dustcloud.bsp create mode 100644 base/test_maps.pk3dir/maps/test_dustcloud.map create mode 100644 base/test_maps.pk3dir/maps/test_light255.bsp create mode 100644 base/test_maps.pk3dir/maps/test_light255.map create mode 100644 base/test_maps.pk3dir/maps/test_staticprops.bsp create mode 100644 base/test_maps.pk3dir/maps/test_staticprops.map delete mode 100644 platform/base_sound.pk3dir/sound/damage_bullet.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/env_spark.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/footsteps.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/func_breakable.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/func_button.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/func_door.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/func_door_rotating.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/func_train.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/impacts.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/modelevent_shell.sndshd delete mode 100644 platform/base_sound.pk3dir/sound/player.sndshd create mode 100644 platform/base_sound.pk3dir/sound/sentences.txt create mode 100644 platform/base_textures.pk3dir/gfx/background.mat create mode 100644 platform/base_textures.pk3dir/gfx/palette.lmp create mode 100644 src/gs-entbase/shared/env_sprite.h create mode 100644 src/gs-entbase/shared/env_sprite.qc diff --git a/base/src/client/camera.qc b/base/src/client/camera.qc index e9aa70de..ce58b396 100644 --- a/base/src/client/camera.qc +++ b/base/src/client/camera.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ struct { diff --git a/base/src/client/cmds.qc b/base/src/client/cmds.qc index b0cc2f83..aa0c031f 100644 --- a/base/src/client/cmds.qc +++ b/base/src/client/cmds.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* This is where custom game-specific commands go! * You'll also inherit all the commands defined in entry.c */ diff --git a/base/src/client/defs.h b/base/src/client/defs.h index 3a4588f7..0120afb5 100644 --- a/base/src/client/defs.h +++ b/base/src/client/defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ vector g_hudmins; vector g_hudres; diff --git a/base/src/client/draw.qc b/base/src/client/draw.qc index 51a22652..d30148a3 100644 --- a/base/src/client/draw.qc +++ b/base/src/client/draw.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void ClientGame_PreDraw(void) diff --git a/base/src/client/entities.qc b/base/src/client/entities.qc index 8d3cda0b..4b7873dd 100644 --- a/base/src/client/entities.qc +++ b/base/src/client/entities.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int ClientGame_EntityUpdate(float id, float new) diff --git a/base/src/client/game_event.qc b/base/src/client/game_event.qc index b71d1f00..f25757de 100644 --- a/base/src/client/game_event.qc +++ b/base/src/client/game_event.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int ClientGame_EventParse(float fHeader) diff --git a/base/src/client/hud.qc b/base/src/client/hud.qc index ea16fa8d..ed516bde 100644 --- a/base/src/client/hud.qc +++ b/base/src/client/hud.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* main entry */ void diff --git a/base/src/client/hud_weaponselect.qc b/base/src/client/hud_weaponselect.qc index 726e1c30..ad8b8924 100644 --- a/base/src/client/hud_weaponselect.qc +++ b/base/src/client/hud_weaponselect.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void HUD_DrawWeaponSelect_Forward(void) diff --git a/base/src/client/init.qc b/base/src/client/init.qc index 917b2bd2..5d8a0451 100644 --- a/base/src/client/init.qc +++ b/base/src/client/init.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/base/src/client/modelevent.qc b/base/src/client/modelevent.qc index 526113bb..cd659ea9 100644 --- a/base/src/client/modelevent.qc +++ b/base/src/client/modelevent.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void ClientGame_ModelEvent(float flTimeStamp, int iCode, string strData) diff --git a/base/src/client/player.qc b/base/src/client/player.qc index db812b18..4e6a5550 100644 --- a/base/src/client/player.qc +++ b/base/src/client/player.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Player_PreDraw(NSClientPlayer pl, int thirdperson) diff --git a/base/src/client/progs.src b/base/src/client/progs.src index c0bbae69..70274ec5 100644 --- a/base/src/client/progs.src +++ b/base/src/client/progs.src @@ -3,7 +3,6 @@ #define CSQC #define CLIENT -#define GS_RENDERFX #includelist /* first the engine, then nuclide headers for client/shared */ diff --git a/base/src/client/scoreboard.qc b/base/src/client/scoreboard.qc index d32e42ed..f2c69211 100644 --- a/base/src/client/scoreboard.qc +++ b/base/src/client/scoreboard.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define SCORE_HEADER_C [255/255,156/255,0] #define SCORE_LINE_C [255/255,200/255,0] diff --git a/base/src/client/view.qc b/base/src/client/view.qc index efa4c715..2a7976b1 100644 --- a/base/src/client/view.qc +++ b/base/src/client/view.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void View_UpdateWeapon(player pl, entity vm, entity mflash) diff --git a/base/src/client/viewmodel.qc b/base/src/client/viewmodel.qc index 7d0e7dfa..ff853f3d 100644 --- a/base/src/client/viewmodel.qc +++ b/base/src/client/viewmodel.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var float autocvar_v_bob = 0.01f; var float autocvar_v_bobcycle = 1.0f; diff --git a/base/src/server/client.qc b/base/src/server/client.qc index d82cc1e9..82ac8317 100644 --- a/base/src/server/client.qc +++ b/base/src/server/client.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* called every input frame */ void diff --git a/base/src/server/damage.qc b/base/src/server/damage.qc index 4a5cd8cf..fbdcedc5 100644 --- a/base/src/server/damage.qc +++ b/base/src/server/damage.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* generic function that applies damage, pain and suffering */ void diff --git a/base/src/server/defs.h b/base/src/server/defs.h index a3f923ca..ea912231 100644 --- a/base/src/server/defs.h +++ b/base/src/server/defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "gamerules.h" #include "items.h" diff --git a/base/src/server/flashlight.h b/base/src/server/flashlight.h index 27fcc8e2..76dfb100 100644 --- a/base/src/server/flashlight.h +++ b/base/src/server/flashlight.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,6 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Flashlight_Toggle(void); diff --git a/base/src/server/flashlight.qc b/base/src/server/flashlight.qc index 94d9f66c..5a767668 100644 --- a/base/src/server/flashlight.qc +++ b/base/src/server/flashlight.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Flashlight_Toggle(void) diff --git a/base/src/server/gamerules.h b/base/src/server/gamerules.h index 426744db..f00a10e5 100644 --- a/base/src/server/gamerules.h +++ b/base/src/server/gamerules.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class GameRules:CGameRules { diff --git a/base/src/server/gamerules.qc b/base/src/server/gamerules.qc index 75a927e9..0e158818 100644 --- a/base/src/server/gamerules.qc +++ b/base/src/server/gamerules.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int autocvar_sv_playerkeepalive = TRUE; diff --git a/base/src/server/gamerules_multiplayer.qc b/base/src/server/gamerules_multiplayer.qc index ff8a3eac..8fdfbc75 100644 --- a/base/src/server/gamerules_multiplayer.qc +++ b/base/src/server/gamerules_multiplayer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void MultiplayerRules::FrameStart(void) diff --git a/base/src/server/gamerules_singleplayer.qc b/base/src/server/gamerules_singleplayer.qc index 0a6ffcfe..053718d5 100644 --- a/base/src/server/gamerules_singleplayer.qc +++ b/base/src/server/gamerules_singleplayer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void SingleplayerRules::PlayerDeath(NSClientPlayer pl) diff --git a/base/src/server/items.h b/base/src/server/items.h index 82c5259a..cc7e4cf6 100644 --- a/base/src/server/items.h +++ b/base/src/server/items.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* PICKUP ITEMS */ class item_pickup:NSRenderableEntity diff --git a/base/src/server/items.qc b/base/src/server/items.qc index 064399f8..6c39d4f3 100644 --- a/base/src/server/items.qc +++ b/base/src/server/items.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void item_pickup::Touch(entity eToucher) diff --git a/base/src/server/modelevent.qc b/base/src/server/modelevent.qc index 34b45516..1052cffd 100644 --- a/base/src/server/modelevent.qc +++ b/base/src/server/modelevent.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Game_ServerModelEvent(float flTimeStamp, int iCode, string strData) diff --git a/base/src/server/player.h b/base/src/server/player.h index 7de34bd9..3d4f84f0 100644 --- a/base/src/server/player.h +++ b/base/src/server/player.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Player_UseDown(void); void Player_UseUp(void); diff --git a/base/src/server/player.qc b/base/src/server/player.qc index c97cdcaa..07d8c64d 100644 --- a/base/src/server/player.qc +++ b/base/src/server/player.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ==================== diff --git a/base/src/server/progs.src b/base/src/server/progs.src index dafe5c67..c73b9b62 100755 --- a/base/src/server/progs.src +++ b/base/src/server/progs.src @@ -3,7 +3,6 @@ #define QWSSQC #define SERVER -#define GS_RENDERFX #includelist /* engine, then nuclide headers & functions */ diff --git a/base/src/server/rules.qc b/base/src/server/rules.qc index bfb26348..ae5c43fa 100644 --- a/base/src/server/rules.qc +++ b/base/src/server/rules.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int Rules_IsTeamPlay(void) { diff --git a/base/src/server/server.qc b/base/src/server/server.qc index 545310ab..79a55284 100644 --- a/base/src/server/server.qc +++ b/base/src/server/server.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Game_InitRules(void) diff --git a/base/src/server/spawn.qc b/base/src/server/spawn.qc index 5d4bc1e3..fec334a0 100644 --- a/base/src/server/spawn.qc +++ b/base/src/server/spawn.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void info_player_start(void) diff --git a/base/src/server/spectator.qc b/base/src/server/spectator.qc index 01e583b1..8d3c6211 100644 --- a/base/src/server/spectator.qc +++ b/base/src/server/spectator.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Game_SpectatorThink(void) diff --git a/base/src/shared/animations.h b/base/src/shared/animations.h index c0bccf60..cca3ce67 100644 --- a/base/src/shared/animations.h +++ b/base/src/shared/animations.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,4 +12,4 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ diff --git a/base/src/shared/animations.qc b/base/src/shared/animations.qc index 5af14deb..4f12892c 100755 --- a/base/src/shared/animations.qc +++ b/base/src/shared/animations.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Animation_TimerUpdate(player pl, float ftime) diff --git a/base/src/shared/flags.h b/base/src/shared/flags.h index 91ed920d..de6be402 100644 --- a/base/src/shared/flags.h +++ b/base/src/shared/flags.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* game flags */ #define GF_SEMI_TOGGLED (1<<0) diff --git a/base/src/shared/fx_blood.qc b/base/src/shared/fx_blood.qc index e3fe0626..fbcd2903 100644 --- a/base/src/shared/fx_blood.qc +++ b/base/src/shared/fx_blood.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef CLIENT var float PARTICLE_BLOOD; diff --git a/base/src/shared/fx_breakmodel.qc b/base/src/shared/fx_breakmodel.qc index b54fd9cc..a91311d5 100644 --- a/base/src/shared/fx_breakmodel.qc +++ b/base/src/shared/fx_breakmodel.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef CLIENT void diff --git a/base/src/shared/fx_corpse.qc b/base/src/shared/fx_corpse.qc index 188cfe0a..3a46211b 100644 --- a/base/src/shared/fx_corpse.qc +++ b/base/src/shared/fx_corpse.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef SERVER #define CORPSES_MAX 16 diff --git a/base/src/shared/fx_explosion.qc b/base/src/shared/fx_explosion.qc index 0e4fffec..e831df24 100755 --- a/base/src/shared/fx_explosion.qc +++ b/base/src/shared/fx_explosion.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef CLIENT diff --git a/base/src/shared/fx_gibhuman.qc b/base/src/shared/fx_gibhuman.qc index b9b6c97e..bfc16b98 100644 --- a/base/src/shared/fx_gibhuman.qc +++ b/base/src/shared/fx_gibhuman.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef CLIENT diff --git a/base/src/shared/fx_impact.qc b/base/src/shared/fx_impact.qc index d0b73be6..9373d920 100644 --- a/base/src/shared/fx_impact.qc +++ b/base/src/shared/fx_impact.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef CLIENT void diff --git a/base/src/shared/fx_spark.qc b/base/src/shared/fx_spark.qc index 8bb310ba..62a2a52b 100644 --- a/base/src/shared/fx_spark.qc +++ b/base/src/shared/fx_spark.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef CLIENT var float PARTICLE_SPARK; diff --git a/base/src/shared/input.qc b/base/src/shared/input.qc index 193f08f5..49dfa80a 100644 --- a/base/src/shared/input.qc +++ b/base/src/shared/input.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Game_Input(player pl) diff --git a/base/src/shared/items.h b/base/src/shared/items.h index 0cab74b2..2c791114 100644 --- a/base/src/shared/items.h +++ b/base/src/shared/items.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,5 +12,5 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ diff --git a/base/src/shared/player.qc b/base/src/shared/player.qc index ebd2141b..22998eb0 100644 --- a/base/src/shared/player.qc +++ b/base/src/shared/player.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* all potential SendFlags bits we can possibly send */ enumflags diff --git a/base/src/shared/pmove.qc b/base/src/shared/pmove.qc index 0f69efe5..e9f7501c 100644 --- a/base/src/shared/pmove.qc +++ b/base/src/shared/pmove.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define PHY_JUMP_CHAINWINDOW 0.5 #define PHY_JUMP_CHAIN 100 diff --git a/base/src/shared/pmove_water.qc b/base/src/shared/pmove_water.qc index e372af11..289385a1 100644 --- a/base/src/shared/pmove_water.qc +++ b/base/src/shared/pmove_water.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void GamePMove_WaterMove(player target) diff --git a/base/src/shared/weapon_baseautomatic.qc b/base/src/shared/weapon_baseautomatic.qc index 5b941ada..7c954416 100644 --- a/base/src/shared/weapon_baseautomatic.qc +++ b/base/src/shared/weapon_baseautomatic.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enum { diff --git a/base/src/shared/weapon_basemelee.qc b/base/src/shared/weapon_basemelee.qc index f8d37326..b8581799 100644 --- a/base/src/shared/weapon_basemelee.qc +++ b/base/src/shared/weapon_basemelee.qc @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + enum { MELEE_FAILED, diff --git a/base/src/shared/weapon_baseprojectile.qc b/base/src/shared/weapon_baseprojectile.qc index d96730f0..7d421a94 100644 --- a/base/src/shared/weapon_baseprojectile.qc +++ b/base/src/shared/weapon_baseprojectile.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enum { diff --git a/base/src/shared/weapon_basesemi.qc b/base/src/shared/weapon_basesemi.qc index 96021b69..4ab18448 100644 --- a/base/src/shared/weapon_basesemi.qc +++ b/base/src/shared/weapon_basesemi.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enum { diff --git a/base/src/shared/weapon_baseshotgun.qc b/base/src/shared/weapon_baseshotgun.qc index 0a742587..98bda6d7 100644 --- a/base/src/shared/weapon_baseshotgun.qc +++ b/base/src/shared/weapon_baseshotgun.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enum { diff --git a/base/src/shared/weapon_common.h b/base/src/shared/weapon_common.h index ae7c6ff7..d6af29cc 100644 --- a/base/src/shared/weapon_common.h +++ b/base/src/shared/weapon_common.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* for AI identification purposes */ typedef enum diff --git a/base/src/shared/weapon_common.qc b/base/src/shared/weapon_common.qc index a1eea277..8d4b1c1b 100644 --- a/base/src/shared/weapon_common.qc +++ b/base/src/shared/weapon_common.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int g_weapon_weights[g_weapons.length]; diff --git a/base/src/shared/weapons.h b/base/src/shared/weapons.h index c0a27b1e..20849b86 100644 --- a/base/src/shared/weapons.h +++ b/base/src/shared/weapons.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* weapon Indices for the weapon table */ enum diff --git a/base/src/shared/weapons.qc b/base/src/shared/weapons.qc index 3698d7f2..58e0255e 100644 --- a/base/src/shared/weapons.qc +++ b/base/src/shared/weapons.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ weapon_t w_null = {}; weapon_t g_weapons[] = { diff --git a/base/test_maps.pk3dir/maps/test_bounce.bsp b/base/test_maps.pk3dir/maps/test_bounce.bsp new file mode 100644 index 0000000000000000000000000000000000000000..39f1fcf2e00cca662a9868d50c661f95125cc659 GIT binary patch literal 1591580 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
  • ?Cs&Jz6V$)5;=<>X9vh!Njnh`^Ya0J_ZUxu9AdZuXFM1Usj=Xl%4(#1zaX=5p(*TNUqFg`d-5B3RN0dD%=f-%q6U9iKl5NhsteL;El96*!*-y(+MvY^UAft2% zR&AiJM+EiOpi;l&PTC$OG+#!@TBE)zbBOB;`TeQY^|#LA8g~TJ_EbP~e@+boKDG6?|J2Y{fME*JNk>OLAUal3E5 z<9Gbdia7tH{XfgrX4bqAh_F_6qWsyDh!Sz3F!!Sp)=HF)9jfUgW_IIoX0-!9v~O8SV{^|qN+aptG~xM+;z z&6%YN$n!HLICq~FA2*?I%FsmqT9{HzG`~fYXZWM#-~I$p{WY`l<*y1g;S^9Vb*Tbo z+33P*VqXsjvZ9O|vErxm;!gfq-hSB4$}@74;(u;|WfeEK*Vcoq^>Jt%x1`1$Nl^(# zZCGyd$+k)y?$wrmoRP~apgs8$cT>bAfVfBQurpC$0(VQG`Q^0sJEzgajfj+|lA61T z>Zzpii*0#QI`1rss1% z+D^-cTxrWSkM-BO@(%W{uf>QG)=$abX{_Iz?S46-EqpC!`31;QFVu(~6-R!`gm4`% z>zS6ARr>LtO&EAF*t|{8i8Y441}j-ub^_mX$jm{G0Q5c{h9gm5hl0d7^C5@>$+~*v*P9 zsvM5B6>)q2e>vfk6+t~66kATLsaSpSCGKS_Rs}_vMEgJDe|HqHW@Fy;RgMDk{D0n4 zw_%(3f7opj3Ve43;z!OSxRqaNUK~F`kiR@%euyj|<9FlBN$Hp#4eZkAJ?c&0&Wfm2 ze&j7KU*;W*QK8hIGKj1q=lIR}2Of27{uhAyv-VxK<9TL=C6oLaw}^zL&yZOAoLGL% zzC1QRhF?Bq{AcYaeMA;{r|F zN36?3fcA${=M!2R|M%DaA6Yj!{^yNA+g9bRYbE}#j|P9&{*PLqQ~}!m^J!bLEClZJ z0ulc+rcH?dO>m3z|Iw6%R4-;<3t>4Iq8+S{e_xfgE z?g-i#hH(j?+^gLD095n6m3rnse*-WN0ea{Ew~mPaGuoR$fWRCJ^xOaCwy3=LTQB>T zyIz~`8r1RnQ=j$Q5cM(c|0!+${N6e|u6zrij>q@ZO1O*I9&xY!cE|Wvz}m~fr7np7X|ig= zJo|@+liUA6RKEXJtAP0B|K@9b5&X-~{={SbEy4J4kM`t$^G}Pq8-dDQpym2+eE-Y& zpTl`?Qg#A|m%#Y>pYq#HaSEuZ0`jYBdGaS7>xqu;6i|fy(&(L91(bhfRsNM>T=C5R z6TNc2wg2<_Z@vG&cZs~M6U$kka{fPm{JH)8{~Gq=vHrSL_p)3UC_e&X_H?8D_;R<4*@3rvP4@Q)HB}Y*D5yVAwV1s^#2P$eEB!0#98t9 ze*tk1%<6e||7X4br>P~I|I1T;P9(qeoR@v$vBvp)%o{%AhX4Fs@#rJ+$I(GtB`G(8 zX5?@B_+Hq$_=lMBKlL{I{r|&%m$C!|4jX~^&T{_$$NVjh@|zO*pAE~eUX=E2o(r1r zn-%#Ve&Z@Y)&k={2i^WyQ=SRQupfQ>@rU~Ve-9gr11M;F|7TtT$g9A`r__mgAt3th z`foQ<4+QGV2>!JSsE_4}dHh4|`u|nq{~-JSUk9)bBq2axjs!~l&wn)8KLjYhsx+Y% zXf6u0;Vx={_<4t>78w6G0cB$R|KI#wqxc!3_#e>mD|UOPmt~9 zl2v)HY$56{mo!HK`41Yhk04)u5hzEZ&xzfvJW^Apsf+w zYs9r8h&W$rhYa{#zhrqHM?^l6VdQ+&F~=WV!S0*y%Kw-XzbhW!m?%mqQ)+>Ftkj)1 zt0#q`YUqAZyqptjYRR0KXVUUmsp&`8t{7b#|NLd1eO>Opxe}F%0D&rSRQ#8L`m@#T z?_ftQ(C@QGXe)&}UPIsF66c%oWpVkSTtQeix+veCzoZ?96>)MYe!_Y_QO7Te$0?w! z0@~^_1xghek8NF9&JN}Otti!E{Vx^q-z(aG*3i|JF;eQ*ax}3#epYVff<;T`6PINn zK;XVC@N*A5Izsf3M;{;m4&bO`%YRIWf11$m^S?8cf6$QsJ|M@BTd<`3vxEB28k&i9 zR(*_f{&CtTTKw@A_xAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ 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 z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfWSctj6L?;?wud_++E%H&|P=M zi%lm!qMLHf8$Z#F*SWv�$D9AGm$;dw=HVj_l^HTz6tOUf=t`qmJ*UY(3@7ZoJMN zd(1PtDS!8m6LUUp=NV@|yPNyfZ%v%LWY;6kdRjO4i+?|H?vYoY^6)2gbKmmOf9%HV z=RWo+mv&R8E>SmY@<_3I;xk{?O`rPS6CQk4H~0T|_g{A7^>c@A92)wG@^`;@{K=ss zV)&^T%jYA8{zEtIKMvh*=>FyJr-vTU`}^t0?`O*Ep`o9RG&%2Q;<-+1Q*M92=w&aw z;w9(5_@dF_(N|t{`72-biicWdJ+IqpoqYoH;-iyw^?6M}=YhL<_ z7hQPS%g%qzOGY2C^8t~=OJ8y6#h1P$GT40Dsav*{Zg|_|kx7|c`jY3r^tms4(fL!Q%e9!+6@j`S) literal 0 HcmV?d00001 diff --git a/base/test_maps.pk3dir/maps/test_bounce.map b/base/test_maps.pk3dir/maps/test_bounce.map new file mode 100644 index 00000000..c4cc28c7 --- /dev/null +++ b/base/test_maps.pk3dir/maps/test_bounce.map @@ -0,0 +1,122 @@ + +// entity 0 +{ +"classname" "worldspawn" +"skyname" "textures/skies/smudge/bg" +// brush 0 +{ +( 128 128 64 ) ( 128 -128 64 ) ( -128 128 64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 128 136 64 ) ( -128 136 64 ) ( 128 136 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 128 128 64 ) ( 128 128 -64 ) ( 128 -128 64 ) next/bunker3 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( 128 -128 -64 ) ( -128 128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 128 -64 ) ( -128 -128 64 ) next/bunker3 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 128 128 -64 ) ( -128 128 64 ) ( 128 128 64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +// brush 1 +{ +( 128 128 64 ) ( 128 -128 64 ) ( -128 128 64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 128 128 64 ) ( -128 128 64 ) ( 128 128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 136 128 64 ) ( 136 128 -64 ) ( 136 -128 64 ) next/bunker3 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( 128 -128 -64 ) ( -128 128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 -128 64 ) ( 128 -128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 128 -128 64 ) ( 128 128 -64 ) ( 128 128 64 ) next/bunker3 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +// brush 2 +{ +( 128 128 64 ) ( -128 128 64 ) ( 128 128 -64 ) next/cracked1 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 128 128 64 ) ( 128 128 -64 ) ( 128 -128 64 ) next/cracked1 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -72 ) ( 128 -128 -72 ) ( -128 128 -72 ) next/cracked1 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 -128 64 ) ( 128 -128 -64 ) next/cracked1 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 128 -64 ) ( -128 -128 64 ) next/cracked1 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 128 -64 ) ( 128 -128 -64 ) ( -128 -128 -64 ) next/cracked1 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +} +// brush 3 +{ +( 128 128 64 ) ( 128 -128 64 ) ( -128 128 64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 128 128 64 ) ( 128 128 -64 ) ( 128 -128 64 ) next/bunker3 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( 128 -128 -64 ) ( -128 128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( -128 -136 -64 ) ( -128 -136 64 ) ( 128 -136 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 128 -64 ) ( -128 -128 64 ) next/bunker3 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 128 -128 -64 ) ( -128 -128 64 ) ( -128 -128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +// brush 4 +{ +( 128 128 64 ) ( 128 -128 64 ) ( -128 128 64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 128 128 64 ) ( -128 128 64 ) ( 128 128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( 128 -128 -64 ) ( -128 128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 -128 64 ) ( 128 -128 -64 ) next/bunker3 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -136 -128 -64 ) ( -136 128 -64 ) ( -136 -128 64 ) next/bunker3 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 64 ) ( -128 128 -64 ) ( -128 -128 -64 ) next/bunker3 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +// brush 5 +{ +( 128 128 128 ) ( 128 -128 128 ) ( -128 128 128 ) next/bunker5 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 128 128 64 ) ( -128 128 64 ) ( 128 128 -64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 128 128 64 ) ( 128 128 -64 ) ( 128 -128 64 ) next/bunker5 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 128 -64 ) ( -128 -128 64 ) next/bunker5 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 128 64 ) ( 128 -128 64 ) ( 128 128 64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 64 64 64 ) ( -64 64 72 ) ( 64 64 72 ) next/bunker5 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +// brush 6 +{ +( 128 128 128 ) ( 128 -128 128 ) ( -128 128 128 ) next/bunker5 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 128 128 64 ) ( 128 128 -64 ) ( 128 -128 64 ) next/bunker5 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 -128 64 ) ( 128 -128 -64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 128 64 ) ( 128 -128 64 ) ( 128 128 64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 64 64 72 ) ( -64 64 72 ) ( 64 64 64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 64 -64 72 ) ( 64 64 64 ) ( 64 64 72 ) next/bunker5 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +// brush 7 +{ +( 128 128 128 ) ( 128 -128 128 ) ( -128 128 128 ) next/bunker5 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 -128 64 ) ( 128 -128 -64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 128 -64 ) ( -128 -128 64 ) next/bunker5 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 128 64 ) ( 128 -128 64 ) ( 128 128 64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 64 64 72 ) ( 64 64 64 ) ( 64 -64 72 ) next/bunker5 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 64 -64 64 ) ( -64 -64 72 ) ( -64 -64 64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +// brush 8 +{ +( 128 128 128 ) ( 128 -128 128 ) ( -128 128 128 ) next/bunker5 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( -128 -128 -64 ) ( -128 128 -64 ) ( -128 -128 64 ) next/bunker5 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -128 128 64 ) ( 128 -128 64 ) ( 128 128 64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 64 64 72 ) ( -64 64 72 ) ( 64 64 64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -64 -64 64 ) ( -64 -64 72 ) ( 64 -64 64 ) next/bunker5 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -64 -64 72 ) ( -64 64 64 ) ( -64 -64 64 ) next/bunker5 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +// brush 9 +{ +( 64 64 144 ) ( 64 -64 144 ) ( -64 64 144 ) common/skyportal [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 +( 64 64 144 ) ( -64 64 144 ) ( 64 64 128 ) common/skyportal [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 +( 64 64 144 ) ( 64 64 128 ) ( 64 -64 144 ) common/skyportal [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 +( -64 -64 128 ) ( 64 -64 128 ) ( -64 64 128 ) common/skyportal [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 +( -64 -64 128 ) ( -64 -64 144 ) ( 64 -64 128 ) common/skyportal [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 +( -64 -64 128 ) ( -64 64 128 ) ( -64 -64 144 ) common/skyportal [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 +} +// brush 10 +{ +( 0 32 32 ) ( 0 -48 32 ) ( -8 32 32 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( 0 32 24 ) ( -8 32 24 ) ( 0 32 16 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( 8 32 -56 ) ( 8 32 -64 ) ( 8 -48 -56 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -8 -40 -64 ) ( 0 -40 -64 ) ( -8 40 -64 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 +( -8 -32 -64 ) ( -8 -32 -56 ) ( 0 -32 -64 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +( -8 -40 -64 ) ( -8 40 -64 ) ( -8 -40 -56 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 +} +} +// entity 1 +{ +"classname" "info_player_start" +"origin" "-96.000000 0.000000 0.000000" +} +// entity 2 +{ +"classname" "light_environment" +"origin" "0.000000 0.000000 96.000000" +"color" "1 1 1" +"intensity" "1000" +"pitch" "-145" +"samples" "16" +"sunspreadangle" "6" +"filterradius" "1" +"ambientcolor" "0.7 0.8 1" +} diff --git a/base/test_maps.pk3dir/maps/test_coloredlights.bsp b/base/test_maps.pk3dir/maps/test_coloredlights.bsp new file mode 100644 index 0000000000000000000000000000000000000000..626c4967605a14b60aa1e1f4da6c9a604c0cee11 GIT binary patch literal 1584492 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 z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< 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 WVed2k-$<6mf5t!K_Y2F6*Zm&?1O@j1 literal 0 HcmV?d00001 diff --git a/base/test_maps.pk3dir/maps/test_coloredlights.map b/base/test_maps.pk3dir/maps/test_coloredlights.map new file mode 100644 index 00000000..43b4e6bd --- /dev/null +++ b/base/test_maps.pk3dir/maps/test_coloredlights.map @@ -0,0 +1,109 @@ + +// entity 0 +{ +"classname" "worldspawn" +// brush 0 +{ +( 248 192 -64 ) ( 248 -192 -64 ) ( -264 192 -64 ) measure/floor [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 256 192 8 ) ( -256 192 8 ) ( 256 192 0 ) measure/floor [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 256 192 8 ) ( 256 192 0 ) ( 256 -192 8 ) measure/floor [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 -128 ) ( 256 -192 -128 ) ( -256 192 -128 ) measure/floor [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 0 ) ( -256 -192 8 ) ( 256 -192 0 ) measure/floor [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 0 ) ( -256 192 0 ) ( -256 -192 8 ) measure/floor [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 1 +{ +( 248 192 192 ) ( 248 -192 192 ) ( -264 192 192 ) measure/floor [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 256 192 264 ) ( -256 192 264 ) ( 256 192 256 ) measure/floor [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 256 192 264 ) ( 256 192 256 ) ( 256 -192 264 ) measure/floor [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 128 ) ( 256 -192 128 ) ( -256 192 128 ) measure/floor [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 256 ) ( -256 -192 264 ) ( 256 -192 256 ) measure/floor [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 256 ) ( -256 192 256 ) ( -256 -192 264 ) measure/floor [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 2 +{ +( 184 192 192 ) ( 184 -192 192 ) ( -328 192 192 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 192 192 264 ) ( -320 192 264 ) ( 192 192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 192 8 ) ( -256 192 0 ) ( -256 -192 8 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -768 -192 -128 ) ( -256 -192 -128 ) ( -768 192 -128 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -320 -192 256 ) ( -320 -192 264 ) ( 192 -192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -320 -192 256 ) ( -320 192 256 ) ( -320 -192 264 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 3 +{ +( 760 192 192 ) ( 760 -192 192 ) ( 248 192 192 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 768 192 264 ) ( 256 192 264 ) ( 768 192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 320 192 8 ) ( 320 192 0 ) ( 320 -192 8 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -192 -192 -128 ) ( 320 -192 -128 ) ( -192 192 -128 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 256 -192 256 ) ( 256 -192 264 ) ( 768 -192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 256 -192 256 ) ( 256 192 256 ) ( 256 -192 264 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 4 +{ +( 184 -192 192 ) ( 184 -576 192 ) ( -328 -192 192 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 192 -192 264 ) ( -320 -192 264 ) ( 192 -192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 320 96 8 ) ( 320 96 0 ) ( 320 -288 8 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -768 -576 -128 ) ( -256 -576 -128 ) ( -768 -192 -128 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 272 -256 256 ) ( 272 -256 264 ) ( 784 -256 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -320 -576 256 ) ( -320 -192 256 ) ( -320 -576 264 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 5 +{ +( 184 256 192 ) ( 184 -128 192 ) ( -328 256 192 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 192 256 264 ) ( -320 256 264 ) ( 192 256 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 320 544 8 ) ( 320 544 0 ) ( 320 160 8 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -768 -128 -128 ) ( -256 -128 -128 ) ( -768 256 -128 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 272 192 256 ) ( 272 192 264 ) ( 784 192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -320 -128 256 ) ( -320 256 256 ) ( -320 -128 264 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +} +// entity 1 +{ +"classname" "info_player_start" +} +// entity 2 +{ +"classname" "info_player_deathmatch" +} +// entity 3 +{ +"classname" "light" +"origin" "0.000000 128.000000 112.000000" +"light" "150" +"color" "1 0 0" +} +// entity 4 +{ +"classname" "light" +"origin" "0.000000 -128.000000 104.000000" +"light" "150" +"color" "0 0 1" +} +// entity 5 +{ +"classname" "light" +"origin" "128.000000 0.000000 112.000000" +"light" "150" +"color" "0 1 0" +} +// entity 6 +{ +"classname" "light" +"origin" "8.000000 120.000000 -32.000000" +"light" "150" +"color" "1 0 0" +} +// entity 7 +{ +"classname" "light" +"origin" "8.000000 -136.000000 -40.000000" +"light" "150" +"color" "0 0 1" +} +// entity 8 +{ +"classname" "light" +"origin" "136.000000 -8.000000 -32.000000" +"light" "150" +"color" "0 1 0" +} diff --git a/base/test_maps.pk3dir/maps/test_detail.bsp b/base/test_maps.pk3dir/maps/test_detail.bsp new file mode 100644 index 0000000000000000000000000000000000000000..255bd82bd7b4cf2b7ea419ddae54f4f6f63a49b7 GIT binary patch literal 1596848 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 zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= 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 A<^TWy delta 21708 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 z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ 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 z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#~Ezh2<=>({Dv=-PFFVu2W)+e0xc2p@bjPBANw_7a4*I+uL-@v6>gK_2ZZ2><9@ z(tW_UozwE@=bs8)6q)xLT&EIUK1+D_{mvyl2j1XTSX5qdtlyy)P=J#pr_Uw?0&y zhodbOLHV{br*-M6*mkHAq&&J}x$w_-J2x2cU)B09(i7fNX!P3LuXD`~NmJ$e4(>Hb zB|1l}t)jl82Ysdzoh5V?6vt@nq#-KNnO*w6tvJ3tHYxIv?|14ueY^EmtRJG7lt&k| zf7C~jv+!DR=F6j|>2H0gs8Rpds^{~vV@l0e=%b}@>!`1z(w>C=A1GR@JUXXUSz~n1 zj}pt?CYJKPZt5+{Yjg%`S-|xzC{YSpnxi4Ko?1KJy ziP8B^eU*wS{5t%PSVv1)==`ptLlOp@RXzIiZzy#eLcevYInVu0k(D3}?Dm0TR$kxd z${G{8D_VMoRnyx_&>Q=9SJ`&<^AD7)0*9#PyzoWee<{w`*J7LNe2M!t%I(=pal~JD zQO$YzrGNdib8TVyJjFTIQL1}yE4nLT)DqSD&bg!1F$n#q{i#OR6!{9mfUb(REYEpv zjdFDChl-=wvEM4CIta^peW+Mj+;(=E;^+#3eSg&&&CThiv~kE_)iN&(`-f7E&JOOW zlJorkD%W?#2-TeD{9C!cV@9c#YR-K{R)Wxf*q>^2TRGabt7<>FLivmox_vlWv9eg- zRbtanRO!QB%T%Ik#4bp2e7k>gStYt|sL(}G;hqDPIy*7v_45R!3ilXvUS->_HVJPj zfUFgN_6e}Z!0y?ZiD|+-}l~CI@`Ovr5d#x^HvW<8iW&)B8&#s}@$d8=(z)c5b*fi=ri+F56m93z*Q)*VhE>W}6rWsIJ-+Mo zlr?&;R2@^+9O&GsIMMq9)p22^*b)?NVPH?yQmqzyNySkZIY4!UT_^lY{PV|a%y?DF z%|eg270s~U8l~}6JnO#h((_$K^xZ$zce|Lc;>7CmT2VrIZ)WG%F1zKUZyXo>1MY3klnY5n(J5B>wSV+`HkE}oQ~uYuQ8w_ST(xfkubLU9(!OSR@~ z=Z50MfIp3)E1oMy$NgyxU8OR@ZtkNx9<6@ywo*^{dVu2ULcZU%t%C9xs=OO9YM1hl z9*Umu^}DJ$Z#er8C5?rPRnO=3_up1*Dtxv?wZ3cbD9#K)_(V;0Oj&(Zxgh8PrSoSm-VE5&8=KginP2!f!ocFJYiCNEj@9Dhv^Z3d4lo z#-Y!I5yD7elrUNtBa9Ws3FAA!CI}OSNy217O_(A~6{ZQ(JC@E6W(u=}*}@!Qt}suS zFDSiN{NH3=AS@IX310|{g)fCA!cyV4>y_og3Sp(NN?0wd5!MRpgs(bsTQ6)7HVT`B z&B7L8tFTSj-m!Ftuv1VMb_u(MJ;K+5hM@WTQY}GS&=GV6JwabE5cYN~-6t3dMuM?m zBJ39q2&RHr$5L~_La-DL3KGFeI3!pLHXTd<|Na^FzV-XVv?uk z(}(>2w__8rq#HEMbIlQ2`aDG v|Fk3>$5Yo(L(fcJnm@|$f3j%5oon*m{g0kj{$KgPDE}*e$>;xw$=CZIBYQg) literal 0 HcmV?d00001 diff --git a/base/test_maps.pk3dir/maps/test_dustcloud.map b/base/test_maps.pk3dir/maps/test_dustcloud.map new file mode 100644 index 00000000..5d1e5243 --- /dev/null +++ b/base/test_maps.pk3dir/maps/test_dustcloud.map @@ -0,0 +1,166 @@ + +// entity 0 +{ +"classname" "worldspawn" +// brush 0 +{ +( 248 192 -64 ) ( 248 -192 -64 ) ( -264 192 -64 ) measure/floor [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 256 192 8 ) ( -256 192 8 ) ( 256 192 0 ) measure/floor [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 256 192 8 ) ( 256 192 0 ) ( 256 -192 8 ) measure/floor [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 -128 ) ( 256 -192 -128 ) ( -256 192 -128 ) measure/floor [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 0 ) ( -256 -192 8 ) ( 256 -192 0 ) measure/floor [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 0 ) ( -256 192 0 ) ( -256 -192 8 ) measure/floor [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 1 +{ +( 248 192 192 ) ( 248 -192 192 ) ( -264 192 192 ) measure/floor [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 256 192 264 ) ( -256 192 264 ) ( 256 192 256 ) measure/floor [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 256 192 264 ) ( 256 192 256 ) ( 256 -192 264 ) measure/floor [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 128 ) ( 256 -192 128 ) ( -256 192 128 ) measure/floor [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 256 ) ( -256 -192 264 ) ( 256 -192 256 ) measure/floor [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 256 ) ( -256 192 256 ) ( -256 -192 264 ) measure/floor [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 2 +{ +( 184 192 192 ) ( 184 -192 192 ) ( -328 192 192 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 192 192 264 ) ( -320 192 264 ) ( 192 192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 192 8 ) ( -256 192 0 ) ( -256 -192 8 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -768 -192 -128 ) ( -256 -192 -128 ) ( -768 192 -128 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -320 -192 256 ) ( -320 -192 264 ) ( 192 -192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -320 -192 256 ) ( -320 192 256 ) ( -320 -192 264 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 3 +{ +( 760 192 192 ) ( 760 -192 192 ) ( 248 192 192 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 768 192 264 ) ( 256 192 264 ) ( 768 192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 320 192 8 ) ( 320 192 0 ) ( 320 -192 8 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -192 -192 -128 ) ( 320 -192 -128 ) ( -192 192 -128 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 256 -192 256 ) ( 256 -192 264 ) ( 768 -192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 256 -192 256 ) ( 256 192 256 ) ( 256 -192 264 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 4 +{ +( 184 -192 192 ) ( 184 -576 192 ) ( -328 -192 192 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 192 -192 264 ) ( -320 -192 264 ) ( 192 -192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 320 96 8 ) ( 320 96 0 ) ( 320 -288 8 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -768 -576 -128 ) ( -256 -576 -128 ) ( -768 -192 -128 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 272 -256 256 ) ( 272 -256 264 ) ( 784 -256 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -320 -576 256 ) ( -320 -192 256 ) ( -320 -576 264 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 5 +{ +( 184 256 192 ) ( 184 -128 192 ) ( -328 256 192 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 192 256 264 ) ( -320 256 264 ) ( 192 256 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 320 544 8 ) ( 320 544 0 ) ( 320 160 8 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -768 -128 -128 ) ( -256 -128 -128 ) ( -768 256 -128 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 272 192 256 ) ( 272 192 264 ) ( 784 192 256 ) measure/wall128gr [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -320 -128 256 ) ( -320 256 256 ) ( -320 -128 264 ) measure/wall128gr [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +} +// entity 1 +{ +"classname" "info_player_start" +} +// entity 2 +{ +"classname" "info_player_deathmatch" +} +// entity 3 +{ +"classname" "light" +"origin" "0.000000 128.000000 112.000000" +"light" "150" +"color" "1 0 0" +} +// entity 4 +{ +"classname" "light" +"origin" "0.000000 -128.000000 104.000000" +"light" "150" +"color" "0 0 1" +} +// entity 5 +{ +"classname" "light" +"origin" "128.000000 0.000000 112.000000" +"light" "150" +"color" "0 1 0" +} +// entity 6 +{ +"classname" "light" +"origin" "8.000000 120.000000 -32.000000" +"light" "150" +"color" "1 0 0" +} +// entity 7 +{ +"classname" "light" +"origin" "8.000000 -136.000000 -40.000000" +"light" "150" +"color" "0 0 1" +} +// entity 8 +{ +"classname" "light" +"origin" "136.000000 -8.000000 -32.000000" +"light" "150" +"color" "0 1 0" +} +// entity 9 +{ +"classname" "func_dustcloud" +"SizeMin" "100" +"SizeMax" "200" +"LifetimeMin" "3" +"LifetimeMax" "5" +"SpawnRate" "40" +"Color" "255 255 255" +"Alpha" "30" +"SpeedMax" "13" +"DistMax" "1024" +// brush 0 +{ +( 256 192 128 ) ( 256 -192 128 ) ( -8 192 128 ) common/trigger [ 1 0 0 -0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 256 192 72 ) ( -8 192 72 ) ( 256 192 -56 ) common/trigger [ 1 0 0 -0 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( 256 192 72 ) ( 256 192 -56 ) ( 256 -192 72 ) common/trigger [ 0 1 0 0 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( -8 -192 -64 ) ( 256 -192 -64 ) ( -8 192 -64 ) common/trigger [ 1 0 0 -0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -8 -192 -56 ) ( -8 -192 72 ) ( 256 -192 -56 ) common/trigger [ 1 0 0 -0 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( -8 -192 -56 ) ( -8 192 -56 ) ( -8 -192 72 ) common/trigger [ 0 1 0 0 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +} +} +// entity 10 +{ +"classname" "func_smokevolume" +"ParticleDrawWidth" "24" +"Color1" "0 0 0" +"Color2" "128 128 128" +"MaxDrawDistance" "1024" +// brush 0 +{ +( 8 192 128 ) ( 8 -192 128 ) ( -256 192 128 ) common/trigger [ 1 0 0 48 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 8 192 72 ) ( -256 192 72 ) ( 8 192 -56 ) common/trigger [ 1 0 0 48 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( -128 192 72 ) ( -128 192 -56 ) ( -128 -192 72 ) common/trigger [ 0 1 0 0 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( -248 -192 64 ) ( 16 -192 64 ) ( -248 192 64 ) common/trigger [ 1 0 0 32 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 -56 ) ( -256 -192 72 ) ( 8 -192 -56 ) common/trigger [ 1 0 0 48 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( -256 -192 -56 ) ( -256 192 -56 ) ( -256 -192 72 ) common/trigger [ 0 1 0 0 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +} +} +// entity 11 +{ +"classname" "func_smokevolume" +"ParticleDrawWidth" "24" +"Color1" "0 0 0" +"Color2" "128 128 128" +"spawnflags" "1" +"MaxDrawDistance" "1024" +// brush 0 +{ +( 16 192 0 ) ( 16 -192 0 ) ( -248 192 0 ) common/trigger [ 1 0 0 32 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 16 192 -56 ) ( -248 192 -56 ) ( 16 192 -184 ) common/trigger [ 1 0 0 32 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( -120 192 -56 ) ( -120 192 -184 ) ( -120 -192 -56 ) common/trigger [ 0 1 0 0 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( -240 -192 -64 ) ( 24 -192 -64 ) ( -240 192 -64 ) common/trigger [ 1 0 0 16 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -248 -192 -184 ) ( -248 -192 -56 ) ( 16 -192 -184 ) common/trigger [ 1 0 0 32 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +( -248 -192 -184 ) ( -248 192 -184 ) ( -248 -192 -56 ) common/trigger [ 0 1 0 0 ] [ -0 -0 -1 16 ] -0 0.5 0.5 0 0 0 +} +} diff --git a/base/test_maps.pk3dir/maps/test_light255.bsp b/base/test_maps.pk3dir/maps/test_light255.bsp new file mode 100644 index 0000000000000000000000000000000000000000..a51f89301a3025c05d92b40879a79de25ba5e797 GIT binary patch literal 1581808 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 zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1R!vG38++m4$_yV)!FuVguMdm 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%0Dc@i%Jm)BW*HwDb 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 z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF 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

    hdVaPsLOD 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 zkbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(T zKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU z0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb z1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ! z5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^ zNI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndv zAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnw zfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz z0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8< z2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|Drd zBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J- zkbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(T zKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU z0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb z1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ! z5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^ zNI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndv zAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnw zfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz z0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8< z2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|Drd zBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J- zkbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(T zKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU z0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb z1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ! z5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^ zNI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndv zAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnw zfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz z0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8< z2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|Drd zBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J- zkbndvAOQ(TKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(T zKmrnwfCMBU0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU z0SQPz0uqpb1SB8<2}nQ!5|DrdBp?9^NI(J-kbndvAOQ(TKmrnwfCMBU0SQPz0uqpb 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 JlW(f}{{Su7&M*J~ literal 0 HcmV?d00001 diff --git a/base/test_maps.pk3dir/maps/test_staticprops.map b/base/test_maps.pk3dir/maps/test_staticprops.map new file mode 100644 index 00000000..89d00374 --- /dev/null +++ b/base/test_maps.pk3dir/maps/test_staticprops.map @@ -0,0 +1,94 @@ + +// entity 0 +{ +"classname" "worldspawn" +// brush 0 +{ +( 248 192 -64 ) ( 248 -192 -64 ) ( -264 192 -64 ) next/cracked1 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( 256 192 8 ) ( -256 192 8 ) ( 256 192 0 ) next/cracked1 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( 256 192 8 ) ( 256 192 0 ) ( 256 -192 8 ) next/cracked1 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -256 -192 -128 ) ( 256 -192 -128 ) ( -256 192 -128 ) next/cracked1 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( -256 -192 0 ) ( -256 -192 8 ) ( 256 -192 0 ) next/cracked1 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -256 -192 0 ) ( -256 192 0 ) ( -256 -192 8 ) next/cracked1 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +} +// brush 1 +{ +( 248 192 192 ) ( 248 -192 192 ) ( -264 192 192 ) skies/yukongold [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( 256 192 264 ) ( -256 192 264 ) ( 256 192 256 ) skies/yukongold [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( 256 192 264 ) ( 256 192 256 ) ( 256 -192 264 ) skies/yukongold [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 128 ) ( 256 -192 128 ) ( -256 192 128 ) skies/yukongold [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 256 ) ( -256 -192 264 ) ( 256 -192 256 ) skies/yukongold [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +( -256 -192 256 ) ( -256 192 256 ) ( -256 -192 264 ) skies/yukongold [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.5 0.5 0 0 0 +} +// brush 2 +{ +( 184 192 192 ) ( 184 -192 192 ) ( -328 192 192 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( 192 192 264 ) ( -320 192 264 ) ( 192 192 256 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -256 192 8 ) ( -256 192 0 ) ( -256 -192 8 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -768 -192 -128 ) ( -256 -192 -128 ) ( -768 192 -128 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( -320 -192 256 ) ( -320 -192 264 ) ( 192 -192 256 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -320 -192 256 ) ( -320 192 256 ) ( -320 -192 264 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +} +// brush 3 +{ +( 760 192 192 ) ( 760 -192 192 ) ( 248 192 192 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( 768 192 264 ) ( 256 192 264 ) ( 768 192 256 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( 320 192 8 ) ( 320 192 0 ) ( 320 -192 8 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -192 -192 -128 ) ( 320 -192 -128 ) ( -192 192 -128 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( 256 -192 256 ) ( 256 -192 264 ) ( 768 -192 256 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( 256 -192 256 ) ( 256 192 256 ) ( 256 -192 264 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +} +// brush 4 +{ +( 184 -192 192 ) ( 184 -576 192 ) ( -328 -192 192 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( 192 -192 264 ) ( -320 -192 264 ) ( 192 -192 256 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( 320 96 8 ) ( 320 96 0 ) ( 320 -288 8 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -768 -576 -128 ) ( -256 -576 -128 ) ( -768 -192 -128 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( 272 -256 256 ) ( 272 -256 264 ) ( 784 -256 256 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -320 -576 256 ) ( -320 -192 256 ) ( -320 -576 264 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +} +// brush 5 +{ +( 184 256 192 ) ( 184 -128 192 ) ( -328 256 192 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( 192 256 264 ) ( -320 256 264 ) ( 192 256 256 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( 320 544 8 ) ( 320 544 0 ) ( 320 160 8 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -768 -128 -128 ) ( -256 -128 -128 ) ( -768 256 -128 ) next/bunker2 [ 1 0 0 0 ] [ -0 -1 -0 0 ] -0 0.25 0.25 0 0 0 +( 272 192 256 ) ( 272 192 264 ) ( 784 192 256 ) next/bunker2 [ 1 0 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +( -320 -128 256 ) ( -320 256 256 ) ( -320 -128 264 ) next/bunker2 [ 0 1 0 0 ] [ -0 -0 -1 0 ] -0 0.25 0.25 0 0 0 +} +} +// entity 1 +{ +"classname" "info_player_start" +"origin" "-128.000000 0.000000 0.000000" +} +// entity 2 +{ +"classname" "info_player_deathmatch" +"origin" "-128.000000 0.000000 0.000000" +} +// entity 3 +{ +"classname" "light" +"origin" "128.000000 0.000000 64.000000" +"light" "100" +} +// entity 4 +{ +"classname" "light" +"origin" "-128.000000 0.000000 64.000000" +"light" "100" +} +// entity 5 +{ +"classname" "prop_static" +"origin" "64.000000 64.000000 0.000000" +"model" "models/logos/visions.vvm" +} +// entity 6 +{ +"classname" "prop_static" +"origin" "64.000000 -64.000000 0.000000" +"model" "models/logos/visions.vvm" +"generatelightmaps" "1" +} diff --git a/build.cfg b/build.cfg index a8f50bba..280d4cf3 100644 --- a/build.cfg +++ b/build.cfg @@ -32,7 +32,7 @@ BUILD_IQMTOOL=1 BUILD_IMGTOOL=1 # Specify which engine revision to build, these are considered 'stable'; 0 = latest -BUILD_ENGINEREVISION=6278 +BUILD_ENGINEREVISION=6282 # Whether or not to run 'git pull' or 'svn up' before building a component BUILD_UPDATE=1 diff --git a/build_engine.sh b/build_engine.sh index 493053e8..a8b08344 100755 --- a/build_engine.sh +++ b/build_engine.sh @@ -142,11 +142,11 @@ fi if [ "$BUILD_ENGINE_DEPENDENCIES" -eq 1 ] then - $MAKE -j $BUILD_PROC CC=$ENGINE_CC CXX=$ENGINE_CXX makelibs FTE_TARGET=$PLATFORM + $MAKE -j $BUILD_PROC CC=$ENGINE_CC CXX=$ENGINE_CXX makelibs FTE_TARGET=$PLATFORM printf "Built the static dependencies successfully.\n\n" fi -$MAKE -j $BUILD_PROC CC=$ENGINE_CC CXX=$ENGINE_CXX $MAKETARGET CFLAGS=-DMULTITHREAD FTE_TARGET=$PLATFORM +$MAKE -j $BUILD_PROC CC=$ENGINE_CC CXX=$ENGINE_CXX $MAKETARGET CFLAGS=-DMULTITHREAD FTE_TARGET=$PLATFORM cp -v "$OUTPUT" ../../../bin/fteqw printf "Built the client engine successfully.\n\n" diff --git a/platform/base_sound.pk3dir/sound/damage_bullet.sndshd b/platform/base_sound.pk3dir/sound/damage_bullet.sndshd deleted file mode 100644 index f8053f56..00000000 --- a/platform/base_sound.pk3dir/sound/damage_bullet.sndshd +++ /dev/null @@ -1,4 +0,0 @@ -damage_bullet.hit -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/env_spark.sndshd b/platform/base_sound.pk3dir/sound/env_spark.sndshd deleted file mode 100644 index 9723fda2..00000000 --- a/platform/base_sound.pk3dir/sound/env_spark.sndshd +++ /dev/null @@ -1,4 +0,0 @@ -env_spark.sfx -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/footsteps.sndshd b/platform/base_sound.pk3dir/sound/footsteps.sndshd deleted file mode 100644 index 164844cd..00000000 --- a/platform/base_sound.pk3dir/sound/footsteps.sndshd +++ /dev/null @@ -1,239 +0,0 @@ -step_default.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_default.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_alien.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_alien.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_computer.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_computer.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_concrete.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_concrete.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_dirt.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_dirt.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_flesh.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_flesh.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_foliage.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_foliage.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_glass.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_glass.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_grate.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_grate.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_metal.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_metal.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_slosh.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_slosh.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_sand.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_sand.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_snow.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_snow.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_tile.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_tile.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_vent.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_vent.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_wood.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_wood.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_ladder.left -{ - attenuation static - footstep - sample misc/null.wav -} -step_ladder.right -{ - attenuation static - footstep - sample misc/null.wav -} - -step_wade.left -{ - sample misc/null.wav -} -step_wade.right -{ - sample misc/null.wav -} - -step_swim.left -{ - sample misc/null.wav -} -step_swim.right -{ - sample misc/null.wav -} - diff --git a/platform/base_sound.pk3dir/sound/func_breakable.sndshd b/platform/base_sound.pk3dir/sound/func_breakable.sndshd deleted file mode 100644 index 9b92bfb1..00000000 --- a/platform/base_sound.pk3dir/sound/func_breakable.sndshd +++ /dev/null @@ -1,44 +0,0 @@ -func_breakable.impact_glassunbreakable -{ - sample misc/missing.wav -} - -func_breakable.impact_computer -{ - sample misc/missing.wav -} - -func_breakable.impact_glass -{ - sample misc/missing.wav -} - -func_breakable.impact_wood -{ - sample misc/missing.wav -} - -func_breakable.impact_metal -{ - sample misc/missing.wav -} - -func_breakable.impact_flesh -{ - sample misc/missing.wav -} - -func_breakable.impact_cinder -{ - sample misc/missing.wav -} - -func_breakable.impact_concrete -{ - sample misc/missing.wav -} - -func_breakable.impact_rock -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/func_button.sndshd b/platform/base_sound.pk3dir/sound/func_button.sndshd deleted file mode 100644 index aba7fb0f..00000000 --- a/platform/base_sound.pk3dir/sound/func_button.sndshd +++ /dev/null @@ -1,101 +0,0 @@ -func_button.qsfx_1 -{ - sample buttons/airbut1.wav -} -func_button.qsfx_2 -{ - sample buttons/switch21.wav -} -func_button.qsfx_3 -{ - sample buttons/switch02.wav -} -func_button.qsfx_4 -{ - sample buttons/switch04.wav -} - -func_button.hlsfx_1 -{ - sample common/null.wav -} -func_button.hlsfx_2 -{ - sample buttons/button1.wav -} -func_button.hlsfx_3 -{ - sample buttons/button2.wav -} -func_button.hlsfx_4 -{ - sample buttons/button3.wav -} -func_button.hlsfx_5 -{ - sample buttons/button4.wav -} -func_button.hlsfx_6 -{ - sample buttons/button5.wav -} -func_button.hlsfx_7 -{ - sample buttons/button6.wav -} -func_button.hlsfx_8 -{ - sample buttons/button7.wav -} -func_button.hlsfx_9 -{ - sample buttons/button8.wav -} -func_button.hlsfx_10 -{ - sample buttons/button9.wav -} -func_button.hlsfx_11 -{ - sample buttons/button10.wav -} -func_button.hlsfx_12 -{ - sample buttons/button11.wav -} -func_button.hlsfx_13 -{ - sample buttons/latchlocked1.wav -} -func_button.hlsfx_14 -{ - sample buttons/latchunlocked1.wav -} -func_button.hlsfx_15 -{ - sample buttons/lightswitch2.wav -} -func_button.hlsfx_16 -{ - sample buttons/lever1.wav -} -func_button.hlsfx_17 -{ - sample buttons/lever2.wav -} -func_button.hlsfx_18 -{ - sample buttons/lever3.wav -} -func_button.hlsfx_19 -{ - sample buttons/lever4.wav -} -func_button.hlsfx_20 -{ - sample buttons/lever5.wav -} -func_button.hlsfx_21 -{ - sample buttons/button9.wav -} diff --git a/platform/base_sound.pk3dir/sound/func_door.sndshd b/platform/base_sound.pk3dir/sound/func_door.sndshd deleted file mode 100644 index 103b1761..00000000 --- a/platform/base_sound.pk3dir/sound/func_door.sndshd +++ /dev/null @@ -1,9 +0,0 @@ -func_door.move_0 -{ - sample misc/missing.wav -} - -func_door.stop_0 -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/func_door_rotating.sndshd b/platform/base_sound.pk3dir/sound/func_door_rotating.sndshd deleted file mode 100644 index 74f5643e..00000000 --- a/platform/base_sound.pk3dir/sound/func_door_rotating.sndshd +++ /dev/null @@ -1,9 +0,0 @@ -func_door_rotating.move_0 -{ - sample misc/missing.wav -} - -func_door_rotating.stop_0 -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/func_train.sndshd b/platform/base_sound.pk3dir/sound/func_train.sndshd deleted file mode 100644 index 7a7d8975..00000000 --- a/platform/base_sound.pk3dir/sound/func_train.sndshd +++ /dev/null @@ -1,9 +0,0 @@ -func_train.move_1 -{ - sample misc/missing.wav -} - -func_train.stop_1 -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/impacts.sndshd b/platform/base_sound.pk3dir/sound/impacts.sndshd deleted file mode 100644 index 351c83a1..00000000 --- a/platform/base_sound.pk3dir/sound/impacts.sndshd +++ /dev/null @@ -1,79 +0,0 @@ -sfx_impact.default -{ - sample misc/missing.wav -} - -sfx_impact.alien -{ - sample misc/missing.wav -} - -sfx_impact.flesh -{ - sample misc/missing.wav -} - -sfx_impact.foliage -{ - sample misc/missing.wav -} - -sfx_impact.computer -{ - sample misc/missing.wav -} - -sfx_impact.dirt -{ - sample misc/missing.wav -} - -sfx_impact.vent -{ - sample misc/missing.wav -} - -sfx_impact.grate -{ - sample misc/missing.wav -} - -sfx_impact.metal -{ - sample misc/missing.wav -} - -sfx_impact.glass -{ - sample misc/missing.wav -} - -sfx_impact.sand -{ - sample misc/missing.wav -} - -sfx_impact.slosh -{ - sample misc/missing.wav -} - -sfx_impact.snow -{ - sample misc/missing.wav -} - -sfx_impact.tile -{ - sample misc/missing.wav -} - -sfx_impact.wood -{ - sample misc/missing.wav -} - -sfx_impact.concrete -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/modelevent_shell.sndshd b/platform/base_sound.pk3dir/sound/modelevent_shell.sndshd deleted file mode 100644 index 2737f7ca..00000000 --- a/platform/base_sound.pk3dir/sound/modelevent_shell.sndshd +++ /dev/null @@ -1,9 +0,0 @@ -modelevent_shell.eject -{ - sample misc/missing.wav -} - -modelevent_shell.land -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/player.sndshd b/platform/base_sound.pk3dir/sound/player.sndshd deleted file mode 100644 index c20751ca..00000000 --- a/platform/base_sound.pk3dir/sound/player.sndshd +++ /dev/null @@ -1,28 +0,0 @@ -player.fall -{ - sample misc/missing.wav -} -player.lightfall -{ - sample misc/missing.wav -} -player.die -{ - sample misc/missing.wav -} -player.gasplight -{ - sample misc/missing.wav -} -player.gaspheavy -{ - sample misc/missing.wav -} -player.waterexit -{ - sample misc/missing.wav -} -player.waterenter -{ - sample misc/missing.wav -} diff --git a/platform/base_sound.pk3dir/sound/sentences.txt b/platform/base_sound.pk3dir/sound/sentences.txt new file mode 100644 index 00000000..c49c586f --- /dev/null +++ b/platform/base_sound.pk3dir/sound/sentences.txt @@ -0,0 +1,3 @@ +// https://developer.vera-visions.com/wiki/Sentences + +TEST (p120) misc/missing (p80) missing (p50) missing diff --git a/platform/base_textures.pk3dir/gfx/background.mat b/platform/base_textures.pk3dir/gfx/background.mat new file mode 100644 index 00000000..38f3d6c9 --- /dev/null +++ b/platform/base_textures.pk3dir/gfx/background.mat @@ -0,0 +1,22 @@ +// Vera Visions Material +{ + { + map "textures/dev/model_bone.tga" + tcMod scroll -1 2 + tcMod scale 0.1 0.1 + } + { + map "textures/dev/info_node.tga" + tcMod scroll -2 4 + tcMod scale 0.05 0.05 + blendFunc blend + } + + { + map "logos/fte.tga" + tcMod turb triangle 0.25 1.0 0.15 + tcMod scale 8 8 + blendFunc blend + alphaGen const 0.25 + } +} diff --git a/platform/base_textures.pk3dir/gfx/palette.lmp b/platform/base_textures.pk3dir/gfx/palette.lmp new file mode 100644 index 0000000000000000000000000000000000000000..08f81a7109e69b1cf0f9eae67ecd78e7cec63fb2 GIT binary patch literal 768 zcmX|9TTGH+06ik`14=)jf`s^6SfV7q!;-)X6ffnUMv~gVL0UtN%yg+uEX&L;n3c^| z+FCbj%h}c0nmttOwyd?eHk-D#F6$wyhkDAjzIf_9pPjRF0YK9Hn5;k=4J(ZzCA_hy*F*&8Q^y$UEHm$hF6K#w^c~0h;m6!TkgF7VOp{NV zC?Pa*EK3&T8HD9*^cJI{HB;4PN$hu|UUIUdZtH{kg2`6ryUyxweNBHawU6x`xwiAd zx!T^-?tMKa&0Pil7W>AnOV?H}$tzowRjf7IR7ob8I#o(*D3O9Mc;g;<<~lQ8cyuJE zht3mGadh*|K;Azx7P+e1;%fP=>l&V=j~7!sh7 zB3up>1d2Jxe?tBhvX78Wi{hS2)wg1_gX*LMiOD+>b(L!EnpkBPEz^b1V?bm!_#6*D zpn*cS2m>^($Kq)M-e+LW0aB+Thcd~9LUOl;yxRY&Iqvh2w`DW{QPKLjeDe@ + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define COST_INFINITE 99999 #define BOTROUTE_DESTINATION -1 diff --git a/src/botlib/bot.qc b/src/botlib/bot.qc index 39f66cce..cc6d6b8c 100644 --- a/src/botlib/bot.qc +++ b/src/botlib/bot.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void SV_SendChat(entity sender, string msg, entity eEnt, float fType); diff --git a/src/botlib/bot_chat.qc b/src/botlib/bot_chat.qc index 9364d751..93a8c494 100644 --- a/src/botlib/bot_chat.qc +++ b/src/botlib/bot_chat.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void bot::ChatSay(string msg) diff --git a/src/botlib/bot_combat.qc b/src/botlib/bot_combat.qc index 95817274..085b225f 100644 --- a/src/botlib/bot_combat.qc +++ b/src/botlib/bot_combat.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void bot::Pain(void) diff --git a/src/botlib/botinfo.h b/src/botlib/botinfo.h index a555beb3..37f684fd 100644 --- a/src/botlib/botinfo.h +++ b/src/botlib/botinfo.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* we need to keep this an enum so find() does its work faster */ enum diff --git a/src/botlib/cmd.qc b/src/botlib/cmd.qc index 22e0516a..e8b9240e 100644 --- a/src/botlib/cmd.qc +++ b/src/botlib/cmd.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Bot_PickName(entity target) diff --git a/src/botlib/cvar.h b/src/botlib/cvar.h index 641f4a87..9b82310a 100644 --- a/src/botlib/cvar.h +++ b/src/botlib/cvar.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int autocvar_bot_pacifist = FALSE; var int autocvar_bot_wait = FALSE; diff --git a/src/botlib/defs.h b/src/botlib/defs.h index c7443b1c..4236081c 100644 --- a/src/botlib/defs.h +++ b/src/botlib/defs.h @@ -1,22 +1,22 @@ -/* - * Copyright (c) 2016-2020 Marco Cawthorne - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING - * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include "bot.h" -#include "botinfo.h" -#include "cvar.h" - - +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#include "bot.h" +#include "botinfo.h" +#include "cvar.h" + + vector Route_SelectDestination( bot target ); diff --git a/src/botlib/route.qc b/src/botlib/route.qc index 829d436c..d19ae931 100644 --- a/src/botlib/route.qc +++ b/src/botlib/route.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* * Begin calculating a route. diff --git a/src/botlib/way.qc b/src/botlib/way.qc index a6166cf0..f9ff72c4 100644 --- a/src/botlib/way.qc +++ b/src/botlib/way.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ typedef struct waypoint_s { diff --git a/src/client/chat.qc b/src/client/chat.qc index 7c09dbff..5165495d 100644 --- a/src/client/chat.qc +++ b/src/client/chat.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var bool autocvar_cl_chat_enabled = true; diff --git a/src/client/cmd.h b/src/client/cmd.h index b2e8c047..80c64532 100644 --- a/src/client/cmd.h +++ b/src/client/cmd.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Cmd_Init(void); int Cmd_Parse(string); diff --git a/src/client/cmd.qc b/src/client/cmd.qc index d5df7eb6..f6c25dc9 100644 --- a/src/client/cmd.qc +++ b/src/client/cmd.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void CMD_testPointLight(void) diff --git a/src/client/damage.qc b/src/client/damage.qc index 544c24c5..7d1ca657 100644 --- a/src/client/damage.qc +++ b/src/client/damage.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/client/defs.h b/src/client/defs.h index 5173a9c0..921f91ed 100644 --- a/src/client/defs.h +++ b/src/client/defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "text.h" #include "textmenu.h" diff --git a/src/client/detailtex.qc b/src/client/detailtex.qc index 7bd7fe96..ec84089c 100644 --- a/src/client/detailtex.qc +++ b/src/client/detailtex.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* This file adds support for GoldSrc styled detail texture definitions. diff --git a/src/client/efx.h b/src/client/efx.h index a4ceeeda..d22b0d89 100644 --- a/src/client/efx.h +++ b/src/client/efx.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ reverbinfo_t *g_efx; string *g_efx_name; diff --git a/src/client/efx.qc b/src/client/efx.qc index a7a8da95..7c2bf6c5 100644 --- a/src/client/efx.qc +++ b/src/client/efx.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifndef EFXDATA_DYNAMIC #ifndef EFXDATA_MAX diff --git a/src/client/entities.qc b/src/client/entities.qc index 1b0bfb02..23d19683 100644 --- a/src/client/entities.qc +++ b/src/client/entities.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Entity_EntityUpdate(float type, float new) diff --git a/src/client/entry.qc b/src/client/entry.qc index 317e9681..8870966b 100644 --- a/src/client/entry.qc +++ b/src/client/entry.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/client/event.qc b/src/client/event.qc index 5518da7e..468aa60a 100644 --- a/src/client/event.qc +++ b/src/client/event.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Event_Parse(float type) diff --git a/src/client/fade.h b/src/client/fade.h index 3633df17..78005d96 100644 --- a/src/client/fade.h +++ b/src/client/fade.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,9 +12,9 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Fade_Init(void); void Fade_Update (int x, int y, int w, int h); void Fade_StartDark(void); -void Fade_Parse(void); \ No newline at end of file +void Fade_Parse(void); diff --git a/src/client/fade.qc b/src/client/fade.qc index 34dac63c..675913f7 100644 --- a/src/client/fade.qc +++ b/src/client/fade.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*enum { diff --git a/src/client/fog.qc b/src/client/fog.qc index 6bda6870..d5fa5062 100644 --- a/src/client/fog.qc +++ b/src/client/fog.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var string g_strFogParms; diff --git a/src/client/font.h b/src/client/font.h index e5493643..97168fe7 100644 --- a/src/client/font.h +++ b/src/client/font.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* flags for 2d drawing */ #define DRAWFLAG_NORMAL 0 diff --git a/src/client/font.qc b/src/client/font.qc index 87524055..36a9d888 100644 --- a/src/client/font.qc +++ b/src/client/font.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ float Font_GetID(font_s fnt) diff --git a/src/client/modelevent.qc b/src/client/modelevent.qc index 0ad8cdf5..3361a307 100644 --- a/src/client/modelevent.qc +++ b/src/client/modelevent.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ==================== diff --git a/src/client/music.qc b/src/client/music.qc index a80ecb8e..9c81b6f0 100644 --- a/src/client/music.qc +++ b/src/client/music.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* We'll let the menu handle the music, as it may want to do special stuff with * track orders and whatnot. We also cannot predict the paths that easily diff --git a/src/client/player.qc b/src/client/player.qc index bb8ff6cb..a1ced993 100644 --- a/src/client/player.qc +++ b/src/client/player.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void player::draw(void) @@ -71,16 +71,25 @@ player::predraw(void) } if (autocvar_cl_thirdperson == TRUE || !this_us) { + renderflags &= ~RF_EXTERNALMODEL; + Voice_Draw3D(this); Player_PreDraw(this, TRUE); - if (p_model) + if (p_model) { + p_model.renderflags &= ~RF_EXTERNALMODEL; addentity(p_model); + } //addentity(this); } else { + renderflags |= RF_EXTERNALMODEL; + Player_PreDraw(this, FALSE); - if (p_model) - removeentity(p_model); - removeentity(this); + + if (p_model) { + p_model.renderflags |= RF_EXTERNALMODEL; + addentity(p_model); + } + addentity(this); } return (PREDRAW_NEXT); diff --git a/src/client/predict.qc b/src/client/predict.qc index 10b12e2f..b3b8d80c 100644 --- a/src/client/predict.qc +++ b/src/client/predict.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/client/prints.qc b/src/client/prints.qc index 8bee437e..43a972ca 100644 --- a/src/client/prints.qc +++ b/src/client/prints.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Print_Draw(void) diff --git a/src/client/sentences.qc b/src/client/sentences.qc index 72aad388..27c3cef9 100644 --- a/src/client/sentences.qc +++ b/src/client/sentences.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* voice sentence samples for AI and other triggers that are supposed to talk. * the formatting is messy as hell and I feel dirty for even bothering with all diff --git a/src/client/shake.qc b/src/client/shake.qc index 71d7da4a..ffa784a5 100644 --- a/src/client/shake.qc +++ b/src/client/shake.qc @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + void Shake_Update(NSClientPlayer pl) { diff --git a/src/client/sky.qc b/src/client/sky.qc index cecad6fd..9dde3083 100644 --- a/src/client/sky.qc +++ b/src/client/sky.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var string g_strSkyName; diff --git a/src/client/text.h b/src/client/text.h index 3cbe38d3..f75d35ef 100644 --- a/src/client/text.h +++ b/src/client/text.h @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + typedef struct { string m_strMessage; @@ -12,4 +28,4 @@ typedef struct float m_flFXTime; float m_flTime; } gametext_t; -gametext_t g_textchannels[6]; \ No newline at end of file +gametext_t g_textchannels[6]; diff --git a/src/client/text.qc b/src/client/text.qc index 4b30e77f..500fee12 100644 --- a/src/client/text.qc +++ b/src/client/text.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* for effect 2 */ int diff --git a/src/client/textmenu.h b/src/client/textmenu.h index 664c7940..637e34eb 100644 --- a/src/client/textmenu.h +++ b/src/client/textmenu.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var string g_textmenu = ""; var float g_textmenucheck = 0.0f; diff --git a/src/client/textmenu.qc b/src/client/textmenu.qc index 838eaa88..cc10ccb7 100644 --- a/src/client/textmenu.qc +++ b/src/client/textmenu.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* Old style Counter-Strike/TFC menus */ diff --git a/src/client/titles.qc b/src/client/titles.qc index 857417a1..35d856e8 100644 --- a/src/client/titles.qc +++ b/src/client/titles.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* * these message titles are used for all sorts of in-game messages. diff --git a/src/client/util.h b/src/client/util.h index 36ae818a..4809b2db 100644 --- a/src/client/util.h +++ b/src/client/util.h @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + /* Returns if the specified client is a NSClientSpectator, doesn't matter if real or fake */ float Client_IsSpectator(NSClient); diff --git a/src/client/util.qc b/src/client/util.qc index 6e5a880e..21ae8713 100644 --- a/src/client/util.qc +++ b/src/client/util.qc @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ float Client_IsSpectator(NSClient cl) diff --git a/src/client/vgui.qc b/src/client/vgui.qc index ecd9dbcb..1558066d 100644 --- a/src/client/vgui.qc +++ b/src/client/vgui.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CUIWidget g_uiDesktop; diff --git a/src/client/view.qc b/src/client/view.qc index 9ccf73bc..97121dee 100644 --- a/src/client/view.qc +++ b/src/client/view.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var bool autocvar_v_modellag = 0; var bool autocvar_v_muzzledlight = 1; @@ -26,28 +26,28 @@ View_Init(void) /* right side */ pSeat->m_eViewModel = spawn(); pSeat->m_eViewModel.classname = "vm"; - pSeat->m_eViewModel.renderflags = RF_DEPTHHACK; + pSeat->m_eViewModel.renderflags = RF_DEPTHHACK | RF_FIRSTPERSON; pSeat->m_eViewModel.effects |= EF_NOSHADOW; pSeat->m_eViewModel.alpha = 1.0f; setsize(pSeat->m_eViewModel, [0,0,0], [0,0,0]); pSeat->m_eMuzzleflash = spawn(); pSeat->m_eMuzzleflash.classname = "mflash"; - pSeat->m_eMuzzleflash.renderflags = RF_ADDITIVE; + pSeat->m_eMuzzleflash.renderflags = RF_ADDITIVE | RF_FIRSTPERSON; pSeat->m_eMuzzleflash.effects |= EF_NOSHADOW; setsize(pSeat->m_eMuzzleflash, [0,0,0], [0,0,0]); /* left side */ pSeat->m_eViewModelL = spawn(); pSeat->m_eViewModelL.classname = "vm"; - pSeat->m_eViewModelL.renderflags = RF_DEPTHHACK; + pSeat->m_eViewModelL.renderflags = RF_DEPTHHACK | RF_FIRSTPERSON; pSeat->m_eViewModelL.effects |= EF_NOSHADOW; pSeat->m_eViewModelL.alpha = 1.0f; setsize(pSeat->m_eViewModelL, [0,0,0], [0,0,0]); pSeat->m_eMuzzleflashL = spawn(); pSeat->m_eMuzzleflashL.classname = "mflash"; - pSeat->m_eMuzzleflashL.renderflags = RF_ADDITIVE; + pSeat->m_eMuzzleflashL.renderflags = RF_ADDITIVE | RF_FIRSTPERSON; pSeat->m_eMuzzleflashL.effects |= EF_NOSHADOW; setsize(pSeat->m_eMuzzleflashL, [0,0,0], [0,0,0]); } diff --git a/src/client/voice.qc b/src/client/voice.qc index ccd0f8ef..22065093 100644 --- a/src/client/voice.qc +++ b/src/client/voice.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/client/way.qc b/src/client/way.qc index 4250f182..8a4c30e2 100644 --- a/src/client/way.qc +++ b/src/client/way.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Way_Init(void) diff --git a/src/gs-entbase/baseentity.h b/src/gs-entbase/baseentity.h index 7bd03e4d..c7217555 100644 --- a/src/gs-entbase/baseentity.h +++ b/src/gs-entbase/baseentity.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,9 +12,8 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ -#ifdef GS_RENDERFX enum { RM_NORMAL = 0, @@ -53,6 +52,5 @@ enum RFX_GLOWSHELL2 = 20, RFX_Q2PULSE = 21 }; -#endif .bool _mapspawned; diff --git a/src/gs-entbase/client.src b/src/gs-entbase/client.src index f7ca4483..5ede91fd 100644 --- a/src/gs-entbase/client.src +++ b/src/gs-entbase/client.src @@ -12,7 +12,6 @@ client/env_glow.qc client/env_sun.qc client/env_sound.qc client/env_soundscape.qc -client/env_sprite.qc client/env_particle.qc client/env_laser.qc client/func_lod.qc diff --git a/src/gs-entbase/client/defs.h b/src/gs-entbase/client/defs.h index 31d8ba24..93217e64 100644 --- a/src/gs-entbase/client/defs.h +++ b/src/gs-entbase/client/defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ vector g_vecSunDir; diff --git a/src/gs-entbase/client/env_cubemap.qc b/src/gs-entbase/client/env_cubemap.qc index 1469cbb4..993baa11 100644 --- a/src/gs-entbase/client/env_cubemap.qc +++ b/src/gs-entbase/client/env_cubemap.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_cubemap (0 0 1) (-8 -8 -8) (8 8 8) Specifies a location for which a cubemap will be generated when the diff --git a/src/gs-entbase/client/env_glow.qc b/src/gs-entbase/client/env_glow.qc index a85b6c75..ac016592 100644 --- a/src/gs-entbase/client/env_glow.qc +++ b/src/gs-entbase/client/env_glow.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_glow (0 0.5 1) (-8 -8 -8) (8 8 8) EVGLOW_ORIENT Client-side glare/glow orb effect like the flares in 1997's Unreal. diff --git a/src/gs-entbase/client/env_laser.qc b/src/gs-entbase/client/env_laser.qc index de0506fc..9a76ad44 100644 --- a/src/gs-entbase/client/env_laser.qc +++ b/src/gs-entbase/client/env_laser.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void(float radius, vector texcoordbias) R_EndPolygonRibbon = #0; diff --git a/src/gs-entbase/client/env_particle.qc b/src/gs-entbase/client/env_particle.qc index 6b4850bc..5a74518d 100644 --- a/src/gs-entbase/client/env_particle.qc +++ b/src/gs-entbase/client/env_particle.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_particle (1 0 0) (-8 -8 -8) (8 8 8) Client-side particle effect. Active at runtime, fully client-side. diff --git a/src/gs-entbase/client/env_sound.qc b/src/gs-entbase/client/env_sound.qc index 026001a1..4ff29230 100644 --- a/src/gs-entbase/client/env_sound.qc +++ b/src/gs-entbase/client/env_sound.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* this is causing crashes on OpenAL 1.19.1 when enabled */ //#define DSP_LERP diff --git a/src/gs-entbase/client/env_soundscape.qc b/src/gs-entbase/client/env_soundscape.qc index bc9e9548..3c1e8618 100644 --- a/src/gs-entbase/client/env_soundscape.qc +++ b/src/gs-entbase/client/env_soundscape.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_soundscape (0 1 0.3) (-8 -8 -8) (8 8 8) Client-side environmental soundscape modifier. diff --git a/src/gs-entbase/client/env_sprite.qc b/src/gs-entbase/client/env_sprite.qc index 840e0edb..e69de29b 100644 --- a/src/gs-entbase/client/env_sprite.qc +++ b/src/gs-entbase/client/env_sprite.qc @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2016-2020 Marco Cawthorne - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING - * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -class env_sprite:NSRenderableEntity -{ - float framerate; - int loops; - int maxframe; - string m_strMaterial; - - virtual float(void) predraw; - virtual void(float,float) ReceiveEntity; - virtual void(void) think; -}; - -float -env_sprite::predraw(void) -{ - if (!m_strMaterial) { - return super::predraw(); - } - - int s = (float)getproperty(VF_ACTIVESEAT); - pSeat = &g_seats[s]; - vector vecPlayer = pSeat->m_vecPredictedOrigin; - makevectors(view_angles); - makevectors(vectoangles(origin - vecPlayer)); - vector forg = origin + (v_forward * -16); - vector fsize = [64,64]; - - traceline(origin, vecPlayer, MOVE_WORLDONLY, this); - - if (trace_fraction < 1.0) - return (PREDRAW_NEXT); - - R_BeginPolygon(m_strMaterial, 1, 0); - R_PolygonVertex(forg + v_right * fsize[0] - v_up * fsize[1], - [1,1], m_vecRenderColor, 1.0); - R_PolygonVertex(forg - v_right * fsize[0] - v_up * fsize[1], - [0,1], m_vecRenderColor, 1.0); - R_PolygonVertex(forg - v_right * fsize[0] + v_up * fsize[1], - [0,0], m_vecRenderColor, 1.0); - R_PolygonVertex(forg + v_right * fsize[0] + v_up * fsize[1], - [1,0], m_vecRenderColor, 1.0); - R_EndPolygon(); - - addentity(this); - - return (PREDRAW_NEXT); -} - -void -env_sprite::think(void) -{ - if (frame >= (maxframe-1)) { - if (loops == 0) { - remove(this); - } else { - frame = 0; - } - } else { - frame += 1; - } - - nextthink = time + (1 / framerate); -} - -void -env_sprite::ReceiveEntity(float flNew, float flChanged) -{ - origin[0] = readcoord(); - origin[1] = readcoord(); - origin[2] = readcoord(); - modelindex = readfloat(); - framerate = readfloat(); - scale = readfloat(); - m_strMaterial = readstring(); - -#ifdef GS_RENDERFX - m_iRenderFX = readbyte(); - m_iRenderMode = readbyte(); - m_vecRenderColor[0] = readfloat(); - m_vecRenderColor[1] = readfloat(); - m_vecRenderColor[2] = readfloat(); - m_flRenderAmt = readfloat(); -#endif - - drawmask = MASK_ENGINE; - nextthink = time + (1 / framerate); - maxframe = modelframecount(modelindex); - loops = 1; /* repeats */ - setorigin(this, origin); -} - -/* make sure we're not spawning on the client-side */ -void -env_sprite::env_sprite(void) -{ - isCSQC = false; -} - -void -EnvSprite_ParseEvent(void) -{ - env_sprite spr = spawn(env_sprite); - spr.origin[0] = readcoord(); - spr.origin[1] = readcoord(); - spr.origin[2] = readcoord(); - spr.modelindex = readfloat(); - spr.framerate = readfloat(); - spr.scale = readfloat(); - spr.m_strMaterial = readstring(); - -#ifdef GS_RENDERFX - spr.m_iRenderFX = readbyte(); - spr.m_iRenderMode = readbyte(); - spr.m_vecRenderColor[0] = readfloat(); - spr.m_vecRenderColor[1] = readfloat(); - spr.m_vecRenderColor[2] = readfloat(); - spr.m_flRenderAmt = readfloat(); -#endif - - spr.drawmask = MASK_ENGINE; - spr.nextthink = time + (1 / spr.framerate); - spr.maxframe = modelframecount(spr.modelindex); - spr.loops = 0; /* does not repeat */ - setorigin(spr, spr.origin); -} diff --git a/src/gs-entbase/client/env_sun.qc b/src/gs-entbase/client/env_sun.qc index 6bfc2e47..b8ec6604 100644 --- a/src/gs-entbase/client/env_sun.qc +++ b/src/gs-entbase/client/env_sun.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int trace_surfaceflagsi; diff --git a/src/gs-entbase/client/func_dustcloud.qc b/src/gs-entbase/client/func_dustcloud.qc index 34cf8326..38c4659d 100644 --- a/src/gs-entbase/client/func_dustcloud.qc +++ b/src/gs-entbase/client/func_dustcloud.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_dustcloud (0 .5 .8) ? Dust cloud emitting brush volume. diff --git a/src/gs-entbase/client/func_dustmotes.qc b/src/gs-entbase/client/func_dustmotes.qc index e427db26..c09e5733 100644 --- a/src/gs-entbase/client/func_dustmotes.qc +++ b/src/gs-entbase/client/func_dustmotes.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_dustmotes (0 .5 .8) ? Dustmote emitting brush volume. diff --git a/src/gs-entbase/client/func_lod.qc b/src/gs-entbase/client/func_lod.qc index a979f9f3..123b753c 100644 --- a/src/gs-entbase/client/func_lod.qc +++ b/src/gs-entbase/client/func_lod.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_lod (0 .5 .8) ? Level of Detail brush entity, disappears at a set distance. diff --git a/src/gs-entbase/client/func_smokevolume.qc b/src/gs-entbase/client/func_smokevolume.qc index 6ce57c2f..79367b7e 100644 --- a/src/gs-entbase/client/func_smokevolume.qc +++ b/src/gs-entbase/client/func_smokevolume.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_smokevolume (0 .5 .8) ? FULLBRIGHT Smoke cloud emitting brush volume. diff --git a/src/gs-entbase/client/info_notnull.qc b/src/gs-entbase/client/info_notnull.qc index 98a3d13f..ad8b5692 100644 --- a/src/gs-entbase/client/info_notnull.qc +++ b/src/gs-entbase/client/info_notnull.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class info_notnull:NSEntity { diff --git a/src/gs-entbase/client/infodecal.qc b/src/gs-entbase/client/infodecal.qc index dbebc531..086db1ad 100644 --- a/src/gs-entbase/client/infodecal.qc +++ b/src/gs-entbase/client/infodecal.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class infodecal:NSEntity diff --git a/src/gs-entbase/client/light_environment.qc b/src/gs-entbase/client/light_environment.qc index 16ceca7c..0fedfc79 100644 --- a/src/gs-entbase/client/light_environment.qc +++ b/src/gs-entbase/client/light_environment.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED light_environment (1 0 0) (-8 -8 -8) (8 8 8) ? Defines the overall ambient skylight in the map. diff --git a/src/gs-entbase/client/point_message.qc b/src/gs-entbase/client/point_message.qc index 1bee8170..80ab490c 100644 --- a/src/gs-entbase/client/point_message.qc +++ b/src/gs-entbase/client/point_message.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED point_message (0.2 1 0.2) (-8 -8 -8) (8 8 8) Client-side overlay/message that is projected in relation to its position diff --git a/src/gs-entbase/client/prop_static.qc b/src/gs-entbase/client/prop_static.qc index 94a28cd4..07a115e9 100644 --- a/src/gs-entbase/client/prop_static.qc +++ b/src/gs-entbase/client/prop_static.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Vera Visions L.L.C. + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class prop_static:NSEntity diff --git a/src/gs-entbase/client/sky_camera.qc b/src/gs-entbase/client/sky_camera.qc index 80b43ab4..fde07e22 100644 --- a/src/gs-entbase/client/sky_camera.qc +++ b/src/gs-entbase/client/sky_camera.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED sky_camera (1 0.3 1) (-8 -8 -8) (8 8 8) Defines the position of a skyroom camera. diff --git a/src/gs-entbase/decals.h b/src/gs-entbase/decals.h index 792b49c4..4228b3e3 100644 --- a/src/gs-entbase/decals.h +++ b/src/gs-entbase/decals.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class decal { diff --git a/src/gs-entbase/server.src b/src/gs-entbase/server.src index f819e38f..2f21f85c 100644 --- a/src/gs-entbase/server.src +++ b/src/gs-entbase/server.src @@ -16,7 +16,6 @@ server/cycler_sprite.qc server/env_beam.qc server/env_fade.qc server/env_hudhint.qc -server/env_sprite.qc server/env_spark.qc server/env_explosion.qc server/env_render.qc diff --git a/src/gs-entbase/server/NSOutput.h b/src/gs-entbase/server/NSOutput.h index 2a095a73..caa7dc29 100644 --- a/src/gs-entbase/server/NSOutput.h +++ b/src/gs-entbase/server/NSOutput.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* inspired by https://developer.valvesoftware.com/wiki/Inputs_and_Outputs a lot of the action happens in NSIO. diff --git a/src/gs-entbase/server/NSOutput.qc b/src/gs-entbase/server/NSOutput.qc index 54fb2686..4be25994 100644 --- a/src/gs-entbase/server/NSOutput.qc +++ b/src/gs-entbase/server/NSOutput.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void NSOutput::TriggerOutput(void) diff --git a/src/gs-entbase/server/button_target.qc b/src/gs-entbase/server/button_target.qc index 20bf0976..cf737404 100644 --- a/src/gs-entbase/server/button_target.qc +++ b/src/gs-entbase/server/button_target.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED button_target (0 .5 .8) ? BUTTA_USE BUTTA_TEXON Non-moving button that can either be used by hand, or shot. diff --git a/src/gs-entbase/server/cycler.qc b/src/gs-entbase/server/cycler.qc index 79155f97..052c2050 100644 --- a/src/gs-entbase/server/cycler.qc +++ b/src/gs-entbase/server/cycler.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED cycler (1 0 0) (-8 -8 -8) (8 8 8) Animation cycler entity. For development purposes mainly. diff --git a/src/gs-entbase/server/cycler_sprite.qc b/src/gs-entbase/server/cycler_sprite.qc index 3a29a66b..1d8ecd5e 100644 --- a/src/gs-entbase/server/cycler_sprite.qc +++ b/src/gs-entbase/server/cycler_sprite.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED cycler_sprite (1 0 0) (-8 -8 -8) (8 8 8) Decorative, does nothing yet. diff --git a/src/gs-entbase/server/defs.h b/src/gs-entbase/server/defs.h index 62f95674..d6d31964 100644 --- a/src/gs-entbase/server/defs.h +++ b/src/gs-entbase/server/defs.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * - * Permission to use, copy, modify, and distribute this software for any+ + * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "../shared/baseentity.h" #include "NSOutput.h" diff --git a/src/gs-entbase/server/env_beam.qc b/src/gs-entbase/server/env_beam.qc index 2c84f97d..70281a3e 100644 --- a/src/gs-entbase/server/env_beam.qc +++ b/src/gs-entbase/server/env_beam.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_beam (1 0 0) (-8 -8 -8) (8 8 8) This entity is incomplete. Purely stub. diff --git a/src/gs-entbase/server/env_beverage.qc b/src/gs-entbase/server/env_beverage.qc index 2994a81c..8e26ea72 100644 --- a/src/gs-entbase/server/env_beverage.qc +++ b/src/gs-entbase/server/env_beverage.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_beverage (1 0 0) (-8 -8 -8) (8 8 8) Upon triggered, the entity will spawn item_food in its place in diff --git a/src/gs-entbase/server/env_explosion.qc b/src/gs-entbase/server/env_explosion.qc index c1deaa99..a3ec951d 100644 --- a/src/gs-entbase/server/env_explosion.qc +++ b/src/gs-entbase/server/env_explosion.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_explosion (1 0 0) (-8 -8 -8) (8 8 8) ENVEXPLO_NODAMAGE ENVEXPLO_REPEATABLE ENVEXPLO_NOBALL ENVEXPLO_NOSMOKE ENVEXPLO_NODECAL ENVEXPLO_NOSPARKS When triggered, creates an explosion at its location. diff --git a/src/gs-entbase/server/env_fade.qc b/src/gs-entbase/server/env_fade.qc index b1343824..3bcd17d9 100644 --- a/src/gs-entbase/server/env_fade.qc +++ b/src/gs-entbase/server/env_fade.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_fade (0 0 0) (-8 -8 -8) (8 8 8) EVF_FADEDROM EVF_MODULATE EVF_ONLYUSER Overlay that blinds/obscures players vision when triggered. @@ -85,17 +85,10 @@ env_fade::Trigger(entity act, int state) WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); WriteByte(MSG_MULTICAST, EV_FADE); -#ifdef GS_RENDERFX WriteFloat(MSG_MULTICAST, m_vecRenderColor[0]); WriteFloat(MSG_MULTICAST, m_vecRenderColor[1]); WriteFloat(MSG_MULTICAST, m_vecRenderColor[2]); WriteFloat(MSG_MULTICAST, m_flRenderAmt); -#else - WriteFloat(MSG_MULTICAST, colormod[0]); - WriteFloat(MSG_MULTICAST, colormod[1]); - WriteFloat(MSG_MULTICAST, colormod[2]); - WriteFloat(MSG_MULTICAST, alpha); -#endif WriteFloat(MSG_MULTICAST, m_flFadeDuration); WriteFloat(MSG_MULTICAST, m_flFadeHold); diff --git a/src/gs-entbase/server/env_global.qc b/src/gs-entbase/server/env_global.qc index a24a7d4f..6d9bd679 100644 --- a/src/gs-entbase/server/env_global.qc +++ b/src/gs-entbase/server/env_global.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_global (1 0 0) (-8 -8 -8) (8 8 8) GLOBAL_SETSPAWN Persistent storage for variables that carry over level changes. diff --git a/src/gs-entbase/server/env_hudhint.qc b/src/gs-entbase/server/env_hudhint.qc index 980cdd2d..c626f786 100644 --- a/src/gs-entbase/server/env_hudhint.qc +++ b/src/gs-entbase/server/env_hudhint.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_hudhint (0 0 0) (-8 -8 -8) (8 8 8) EHH_ALLPLAYERS Will display a hint message to the client who activates it. diff --git a/src/gs-entbase/server/env_laser.qc b/src/gs-entbase/server/env_laser.qc index 8d70c180..3eb31cad 100644 --- a/src/gs-entbase/server/env_laser.qc +++ b/src/gs-entbase/server/env_laser.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_laser (1 0 0) (-8 -8 -8) (8 8 8) ENVLAZ_STARTON x x x ENVLAZ_STARTSPARK ENVLAZ_ENDSPARK ENVLAZ_DECALEND Shoots a frickin lazer. diff --git a/src/gs-entbase/server/env_message.qc b/src/gs-entbase/server/env_message.qc index 379e1421..295d9ab3 100644 --- a/src/gs-entbase/server/env_message.qc +++ b/src/gs-entbase/server/env_message.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_message (1 0 0) (-8 -8 -8) (8 8 8) EMF_ONCE EMF_ALLPLAYERS Displays a basic message or titles.txt entry. diff --git a/src/gs-entbase/server/env_render.qc b/src/gs-entbase/server/env_render.qc index 103edc89..1a2f755c 100644 --- a/src/gs-entbase/server/env_render.qc +++ b/src/gs-entbase/server/env_render.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_render (1 0 0) (-8 -8 -8) (8 8 8) SF_NORENDERFX SF_NORENDERAMT SF_NORENDERMODE SF_NORENDERCOLOR Changes the visual appearance of a target. @@ -68,7 +68,6 @@ Supported Render-FX ("renderfx") values: This entity was introduced in Half-Life (1998). */ -#ifdef GS_RENDERFX enumflags { SF_NORENDERFX, @@ -116,4 +115,3 @@ void env_render::env_render(void) { } -#endif diff --git a/src/gs-entbase/server/env_shake.qc b/src/gs-entbase/server/env_shake.qc index 7a281f3b..4e0e00c8 100644 --- a/src/gs-entbase/server/env_shake.qc +++ b/src/gs-entbase/server/env_shake.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_shake (1 0.5 0) (-8 -8 -8) (8 8 8) EVS_GLOBAL Causes an earthquake/shaking effect when triggered. diff --git a/src/gs-entbase/server/env_shooter.qc b/src/gs-entbase/server/env_shooter.qc index 6157699c..6f55eb6f 100644 --- a/src/gs-entbase/server/env_shooter.qc +++ b/src/gs-entbase/server/env_shooter.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,9 +12,9 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ -/*QUAKED env_shooter (1 0 0) (-8 -8 -8) (8 8 8) +/*QUAKED env_shooter (1 0 0) (-8 -8 -8) (8 8 8) EVSHOOTER_REPEATABLE Shoots model entities from its location. -------- KEYS -------- @@ -35,6 +35,8 @@ Shoots model entities from its location. This entity was introduced in Half-Life (1998). */ +#define EVSHOOTER_REPEATABLE 1 + class env_shooter:NSPointTrigger { int m_iGibs; @@ -92,6 +94,9 @@ env_shooter::Trigger(entity act, int state) nextthink = 0.0f; break; case TRIG_ON: + if (spawnflags & EVSHOOTER_REPEATABLE) + m_iGibsLeft = m_iGibs; + think = ShootGib; nextthink = time + m_flVariance; break; @@ -106,6 +111,11 @@ env_shooter::Trigger(entity act, int state) void env_shooter::Respawn(void) { + if (!m_strShootModel) { + Destroy(); + return; + } + m_iGibsLeft = m_iGibs; think = __NULL__; } @@ -150,7 +160,14 @@ env_shooter::SpawnKey(string strKey, string strValue) void env_shooter::env_shooter(void) { - if (!m_strShootModel) { - remove(this); - } + m_flVariance = 0.0f; + m_flDelay = 0.0f; + m_iGibs = 1; + m_iGibsLeft = 1; + m_flVelocity = 0; + m_flGibLife = 1.0f; + m_strShootModel = __NULL__; + m_flShootSounds = 0; + m_flScale = 1.0; + m_flSkin = 0; } diff --git a/src/gs-entbase/server/env_spark.qc b/src/gs-entbase/server/env_spark.qc index a832c726..dba367b5 100644 --- a/src/gs-entbase/server/env_spark.qc +++ b/src/gs-entbase/server/env_spark.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_spark (1 0 0) (-8 -8 -8) (8 8 8) x x x x x EVSPARK_TOGGLE EVSPARK_STARTON Creates a series (or just one) spark effect with sound when triggered. diff --git a/src/gs-entbase/server/env_sprite.qc b/src/gs-entbase/server/env_sprite.qc index 917736b9..e69de29b 100644 --- a/src/gs-entbase/server/env_sprite.qc +++ b/src/gs-entbase/server/env_sprite.qc @@ -1,200 +0,0 @@ -/* - * Copyright (c) 2016-2020 Marco Cawthorne - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING - * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/*QUAKED env_sprite (1 0 0) (-8 -8 -8) (8 8 8) ENVS_STARTON ENVS_PLAYONCE -A sprite entity manager with fancy overrides. - --------- KEYS -------- -"targetname" : Name -"target" : Target when triggered. -"killtarget" : Target to kill when triggered. -"angles" : Sets the pitch, yaw and roll angles of the sprite. -"model" : Path to the sprite in question. -"rendercolor" : Color modifier of the sprite. -"renderamt" : Alpha modifier of the sprite. -"rendermode" : Render mode of the sprite. -"framerate" : Rate between frames in seconds. -"scale" : Scale modifier of the sprite. - --------- SPAWNFLAGS -------- -ENVS_STARTON : Start visible. -ENVS_PLAYONCE : Play once from start to finish, then make invisible. - --------- NOTES -------- -Only used with an external sprite format, like SPR, SPRHL and SPR32. - --------- TRIVIA -------- -This entity was introduced in Half-Life (1998). -*/ - -enumflags -{ - ENVS_STARTON, - ENVS_PLAYONCE -}; - -class env_sprite:NSRenderableEntity -{ - bool m_iIsShader; - int m_iToggled; - float m_flFramerate; - float m_flScale; - float m_flEffects; - string m_strMaterial; - - void(void) env_sprite; - - virtual void(void) Spawned; - virtual void(entity, int) Trigger; - virtual float(entity, float) SendEntity; - virtual void(string, string) SpawnKey; - virtual void(entity, string, string) Input; -}; - -void -env_sprite::Input(entity eAct, string strInput, string strData) -{ - switch (strInput) { - case "Color": - m_vecRenderColor = stov(strData) / 255; - SendFlags |= 1; - break; - default: - super::Input(eAct, strInput, strData); - } -} - -float -env_sprite::SendEntity(entity ePEnt, float flags) -{ - if (clienttype(ePEnt) != CLIENTTYPE_REAL) - return (0); - - if (HasSpawnFlags(ENVS_PLAYONCE)) - return (0); - - /* Delete it on the client. */ - if (m_iToggled == FALSE) - return (0); - - WriteByte(MSG_ENTITY, ENT_SPRITE); - WriteFloat(MSG_ENTITY, 666); - WriteCoord(MSG_ENTITY, origin[0]); - WriteCoord(MSG_ENTITY, origin[1]); - WriteCoord(MSG_ENTITY, origin[2]); - WriteFloat(MSG_ENTITY, modelindex); - WriteFloat(MSG_ENTITY, m_flFramerate); - WriteFloat(MSG_ENTITY, m_flScale); - WriteString(MSG_ENTITY, m_strMaterial); - -#ifdef GS_RENDERFX - WriteByte(MSG_ENTITY, m_iRenderFX); - WriteByte(MSG_ENTITY, m_iRenderMode); - WriteFloat(MSG_ENTITY, m_vecRenderColor[0]); - WriteFloat(MSG_ENTITY, m_vecRenderColor[1]); - WriteFloat(MSG_ENTITY, m_vecRenderColor[2]); - WriteFloat(MSG_ENTITY, m_flRenderAmt); -#else - WriteFloat(MSG_ENTITY, colormod[0]); - WriteFloat(MSG_ENTITY, colormod[1]); - WriteFloat(MSG_ENTITY, colormod[2]); - WriteFloat(MSG_ENTITY, alpha); -#endif - - return (1); -} - -void -env_sprite::NetworkOnce(void) -{ - WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); - WriteByte(MSG_MULTICAST, EV_SPRITE); - WriteCoord(MSG_MULTICAST, origin[0]); - WriteCoord(MSG_MULTICAST, origin[1]); - WriteCoord(MSG_MULTICAST, origin[2]); - WriteFloat(MSG_MULTICAST, modelindex); - WriteFloat(MSG_MULTICAST, m_flFramerate); - WriteFloat(MSG_MULTICAST, m_flScale); - WriteString(MSG_MULTICAST, m_strMaterial); - -#ifdef GS_RENDERFX - WriteByte(MSG_MULTICAST, m_iRenderFX); - WriteByte(MSG_MULTICAST, m_iRenderMode); - WriteFloat(MSG_MULTICAST, m_vecRenderColor[0]); - WriteFloat(MSG_MULTICAST, m_vecRenderColor[1]); - WriteFloat(MSG_MULTICAST, m_vecRenderColor[2]); - WriteFloat(MSG_MULTICAST, m_flRenderAmt); -#else - WriteFloat(MSG_MULTICAST, colormod[0]); - WriteFloat(MSG_MULTICAST, colormod[1]); - WriteFloat(MSG_MULTICAST, colormod[2]); - WriteFloat(MSG_MULTICAST, alpha); -#endif - - msg_entity = this; - multicast(origin, MULTICAST_PVS); -} - -/* TODO: Implement state */ -void -env_sprite::Trigger(entity act, int state) -{ - if (HasSpawnFlags(ENVS_PLAYONCE)) { - NetworkOnce(); - } else { - m_iToggled = 1 - m_iToggled; - SendFlags = 1; - } -} - -void -env_sprite::SpawnKey(string strKey, string strValue) -{ - switch (strKey) { - case "shader": - case "material": - m_strMaterial = strValue; - break; - case "framerate": - m_flFramerate = stof(strValue); - break; - case "scale": - m_flScale = stof(strValue); - break; - default: - super::SpawnKey(strKey, strValue); - } -} - -void -env_sprite::Spawned(void) -{ - super::Spawned(); - - m_iToggled = (HasSpawnFlags(ENVS_STARTON) > 0) ? TRUE : FALSE; - - /* how pointless this would be otherwise. */ - if (!targetname) - m_iToggled = TRUE; -} - -void -env_sprite::env_sprite(void) -{ - m_iIsShader = false; - m_flFramerate = 10; - m_flScale = 1.0f; -} diff --git a/src/gs-entbase/server/func_areaportal.qc b/src/gs-entbase/server/func_areaportal.qc index 649f26ca..3efffdd0 100644 --- a/src/gs-entbase/server/func_areaportal.qc +++ b/src/gs-entbase/server/func_areaportal.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_areaportal (0 .5 .8) ? Manages a space between two areas. @@ -132,4 +132,4 @@ func_areaportal::PortalClose(void) void func_areaportal::func_areaportal(void) { -} \ No newline at end of file +} diff --git a/src/gs-entbase/server/func_breakable.qc b/src/gs-entbase/server/func_breakable.qc index 7541ae12..d75acabf 100644 --- a/src/gs-entbase/server/func_breakable.qc +++ b/src/gs-entbase/server/func_breakable.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_breakable (0 .5 .8) ? SF_TRIGGER SF_TOUCH SF_PRESSURE Brush volume that can break into lots of little pieces. diff --git a/src/gs-entbase/server/func_brush.qc b/src/gs-entbase/server/func_brush.qc index 372a6fee..34ae1a2d 100644 --- a/src/gs-entbase/server/func_brush.qc +++ b/src/gs-entbase/server/func_brush.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_brush (0 .5 .8) ? Combination of func_illusionary, func_wall, func_wall_toggle. diff --git a/src/gs-entbase/server/func_button.qc b/src/gs-entbase/server/func_button.qc index 18afbf14..1a6aa706 100644 --- a/src/gs-entbase/server/func_button.qc +++ b/src/gs-entbase/server/func_button.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_button (0 .5 .8) ? SF_BTT_NOMOVE x x x x SF_BTT_TOGGLE SF_BTT_SPARKS x SF_BTT_TOUCH_ONLY A brush entity which can be used either by touching, interaction (via a games' diff --git a/src/gs-entbase/server/func_conveyor.qc b/src/gs-entbase/server/func_conveyor.qc index c405dfca..435d2d84 100644 --- a/src/gs-entbase/server/func_conveyor.qc +++ b/src/gs-entbase/server/func_conveyor.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_conveyor (0 .5 .8) ? -------- KEYS -------- diff --git a/src/gs-entbase/server/func_detail.qc b/src/gs-entbase/server/func_detail.qc index 8e1284de..a7323d15 100644 --- a/src/gs-entbase/server/func_detail.qc +++ b/src/gs-entbase/server/func_detail.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_detail (0 .5 .8) ? A "fake" entity for level editors. diff --git a/src/gs-entbase/server/func_detail_illusionary.qc b/src/gs-entbase/server/func_detail_illusionary.qc index 5145136c..4af7543e 100644 --- a/src/gs-entbase/server/func_detail_illusionary.qc +++ b/src/gs-entbase/server/func_detail_illusionary.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_detail_illusionary (0 .5 .8) ? A "fake" entity for level editors. diff --git a/src/gs-entbase/server/func_door.qc b/src/gs-entbase/server/func_door.qc index 18e35ad9..4067c32c 100644 --- a/src/gs-entbase/server/func_door.qc +++ b/src/gs-entbase/server/func_door.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_door (0 .5 .8) ? SF_MOV_OPEN x SF_MOV_UNLINK SF_MOV_PASSABLE x SF_MOV_TOGGLE x x SF_MOV_USE This sliding door entity has the ability to slide forth and back on any diff --git a/src/gs-entbase/server/func_door_rotating.qc b/src/gs-entbase/server/func_door_rotating.qc index e7e994a6..326d8446 100644 --- a/src/gs-entbase/server/func_door_rotating.qc +++ b/src/gs-entbase/server/func_door_rotating.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_door_rotating (0 .5 .8) ? SF_ROT_OPEN SF_ROT_BACKWARDS x SF_ROT_PASSABLE SF_ROT_ONEWAY SF_ROT_TOGGLE SF_ROT_ZAXIS SF_ROT_XAXIS SF_ROT_USE SF_ROT_NOMONSTERS Rotating brush door entity. It's basically the same as func_door, it just does diff --git a/src/gs-entbase/server/func_group.qc b/src/gs-entbase/server/func_group.qc index bdc912bf..fa1fc6e2 100644 --- a/src/gs-entbase/server/func_group.qc +++ b/src/gs-entbase/server/func_group.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_group (0 .5 .8) ? A "fake" entity for level editors, used to group together patches and diff --git a/src/gs-entbase/server/func_guntarget.qc b/src/gs-entbase/server/func_guntarget.qc index a3365761..97d08d10 100644 --- a/src/gs-entbase/server/func_guntarget.qc +++ b/src/gs-entbase/server/func_guntarget.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_guntarget (0 .5 .8) ? Gun targets brushes that trigger a target once they 'die'. diff --git a/src/gs-entbase/server/func_healthcharger.qc b/src/gs-entbase/server/func_healthcharger.qc index ba45bc43..29026ec0 100644 --- a/src/gs-entbase/server/func_healthcharger.qc +++ b/src/gs-entbase/server/func_healthcharger.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_healthcharger (0 .5 .8) ? Brush that fills up your health when used, to a maximum of 100 HP. diff --git a/src/gs-entbase/server/func_lod.qc b/src/gs-entbase/server/func_lod.qc index d616568c..ad992032 100644 --- a/src/gs-entbase/server/func_lod.qc +++ b/src/gs-entbase/server/func_lod.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class func_lod:NSEntity { diff --git a/src/gs-entbase/server/func_mortar_field.qc b/src/gs-entbase/server/func_mortar_field.qc index 1016ba32..3dd64214 100644 --- a/src/gs-entbase/server/func_mortar_field.qc +++ b/src/gs-entbase/server/func_mortar_field.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_mortar_field (0 .5 .8) ? This brush volume acts as mortar drop area. diff --git a/src/gs-entbase/server/func_pendulum.qc b/src/gs-entbase/server/func_pendulum.qc index 2e1eec7c..588436c3 100644 --- a/src/gs-entbase/server/func_pendulum.qc +++ b/src/gs-entbase/server/func_pendulum.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_pendulum (0 .5 .8) ? FUNCPEND_STARTON x x FUNCPEND_NONSOLID FUNCPEND_RETURNONTRIGGER x FUNCPEND_XAXIS FUNCPEND_YAXIS A brush that swings along a pivot point like a pendulum. diff --git a/src/gs-entbase/server/func_physbox.qc b/src/gs-entbase/server/func_physbox.qc index ad203946..7370e823 100644 --- a/src/gs-entbase/server/func_physbox.qc +++ b/src/gs-entbase/server/func_physbox.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_physbox (0 .5 .8) ? x x x x x x x x x x x x FNCPHYBX_ASLEEP Physics brush. diff --git a/src/gs-entbase/server/func_plat.qc b/src/gs-entbase/server/func_plat.qc index 12b7a525..11994f1d 100644 --- a/src/gs-entbase/server/func_plat.qc +++ b/src/gs-entbase/server/func_plat.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_plat (0 .5 .8) ? FNCPLAT_TRIGGER It's a simple elevator. It goes down... and back up. diff --git a/src/gs-entbase/server/func_platrot.qc b/src/gs-entbase/server/func_platrot.qc index 13b47094..2a03da74 100644 --- a/src/gs-entbase/server/func_platrot.qc +++ b/src/gs-entbase/server/func_platrot.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_platrot (0 .5 .8) ? A vertically moving platform that rotates. @@ -237,4 +237,4 @@ void func_platrot::func_platrot(void) { m_flSpeed = 100.0f; -} \ No newline at end of file +} diff --git a/src/gs-entbase/server/func_pushable.qc b/src/gs-entbase/server/func_pushable.qc index 1860c7b0..8596b133 100644 --- a/src/gs-entbase/server/func_pushable.qc +++ b/src/gs-entbase/server/func_pushable.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_pushable (0 .5 .8) ? SF_TRIGGER SF_TOUCH SF_PRESSURE This is essentially the same entity as a func_breakable, but diff --git a/src/gs-entbase/server/func_recharge.qc b/src/gs-entbase/server/func_recharge.qc index f3c0f9e7..870cc1e8 100644 --- a/src/gs-entbase/server/func_recharge.qc +++ b/src/gs-entbase/server/func_recharge.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_recharge (0 .5 .8) ? Brush that fills up your armor when used, to a maximum of 100 points. diff --git a/src/gs-entbase/server/func_rot_button.qc b/src/gs-entbase/server/func_rot_button.qc index 6ce5cda3..f7aa6770 100644 --- a/src/gs-entbase/server/func_rot_button.qc +++ b/src/gs-entbase/server/func_rot_button.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_rot_button (0 .5 .8) ? FNCROTBUT_NONSOLID FNCROTBUT_REVERSE x x x FNCROTBUT_TOGGLE FNCROTBUT_XAXIS FNCROTBUT_YAXIS FNCROTBUT_TOUCHABLE A button that rotates along a pivot point. Used for valves, spigots and alike. diff --git a/src/gs-entbase/server/func_rotating.qc b/src/gs-entbase/server/func_rotating.qc index 3fd17629..27e23bcf 100644 --- a/src/gs-entbase/server/func_rotating.qc +++ b/src/gs-entbase/server/func_rotating.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_rotating (0 .5 .8) ? FR_STARTON FR_REVERSE FR_ZAXIS FR_XAXIS FR_ACCDCC FR_FANPAIN FR_NOTSOLID FR_SMALLRADIUS FR_MRADIUS FR_LRADIUS FR_TOGGLEDIR Rotating brush object. Useful for fans, etc. diff --git a/src/gs-entbase/server/func_tank.qc b/src/gs-entbase/server/func_tank.qc index ed0f39ed..4aa24cd8 100644 --- a/src/gs-entbase/server/func_tank.qc +++ b/src/gs-entbase/server/func_tank.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_tank (0 .5 .8) ? FNCTANK_ACTIVE x x x FNCTANK_DIRECTONLY FNCTANK_CONTROLLABLE A mountable tank gun turret type entity. A player (or NPC) can interact with diff --git a/src/gs-entbase/server/func_tankcontrols.qc b/src/gs-entbase/server/func_tankcontrols.qc index c8a3a641..080e72c1 100644 --- a/src/gs-entbase/server/func_tankcontrols.qc +++ b/src/gs-entbase/server/func_tankcontrols.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_tankcontrols (0 .5 .8) ? Brush that marks the usable region of a func_tankmortar, in order diff --git a/src/gs-entbase/server/func_tracktrain.qc b/src/gs-entbase/server/func_tracktrain.qc index aac21bf7..62376c91 100644 --- a/src/gs-entbase/server/func_tracktrain.qc +++ b/src/gs-entbase/server/func_tracktrain.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_tracktrain (0 .5 .8) ? TRAIN_WAIT TRAIN_NOPITCH x TRAIN_NOTSOLID Moving platform following along path_corner entities, aka nodes. @@ -209,7 +209,7 @@ func_tracktrain::PathMove(void) vecAngleDiff = vecAngleDest - angles; vecAngleDiff[2] = 0; - print(sprintf("vecAngleDiff: %v\n", vecAngleDiff)); + //print(sprintf("vecAngleDiff: %v\n", vecAngleDiff)); if (vecAngleDiff[1] == 0) angles = vecAngleDest; diff --git a/src/gs-entbase/server/func_tracktraincontrols.qc b/src/gs-entbase/server/func_tracktraincontrols.qc index 9a1f2524..ae1c0bdc 100644 --- a/src/gs-entbase/server/func_tracktraincontrols.qc +++ b/src/gs-entbase/server/func_tracktraincontrols.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_traincontrols (0 .5 .8) ? Brush that marks the usable region of a func_tracktrain, in order diff --git a/src/gs-entbase/server/func_train.qc b/src/gs-entbase/server/func_train.qc index 80fec552..abd36549 100644 --- a/src/gs-entbase/server/func_train.qc +++ b/src/gs-entbase/server/func_train.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_train (0 .5 .8) ? TRAIN_WAIT x x TRAIN_NOTSOLID Moving platform following along path_corner entities, aka nodes. diff --git a/src/gs-entbase/server/func_vehicle.qc b/src/gs-entbase/server/func_vehicle.qc index ba22be27..8792efb5 100644 --- a/src/gs-entbase/server/func_vehicle.qc +++ b/src/gs-entbase/server/func_vehicle.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_vehicle (0 .5 .8) ? FUNCVEH_NOPITCH FUNCVEH_NOUSER x FUNCVEH_PASSABLE FUNCVEH_FWDRIVE FUNCVEH_RWDRIVE Primitive brush-based vehicle entity. diff --git a/src/gs-entbase/server/func_vehiclecontrols.qc b/src/gs-entbase/server/func_vehiclecontrols.qc index d960d38a..3ebefffa 100644 --- a/src/gs-entbase/server/func_vehiclecontrols.qc +++ b/src/gs-entbase/server/func_vehiclecontrols.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_vehiclecontrols (0 .5 .8) ? Brush that marks the usable region of a func_vehicle, in order diff --git a/src/gs-entbase/server/func_wall_toggle.qc b/src/gs-entbase/server/func_wall_toggle.qc index 5fb80f8e..f257ade8 100644 --- a/src/gs-entbase/server/func_wall_toggle.qc +++ b/src/gs-entbase/server/func_wall_toggle.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_wall_toggle (0 .5 .8) ? FTW_STARTHIDDEN Brush that can be hidden and reappear when triggered. diff --git a/src/gs-entbase/server/game_counter.qc b/src/gs-entbase/server/game_counter.qc index 75ea6edc..9ca2a6f1 100644 --- a/src/gs-entbase/server/game_counter.qc +++ b/src/gs-entbase/server/game_counter.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED game_counter (0 .5 .8) (-8 -8 -8) (8 8 8) GMCNT_REMOVE GMCNT_RESET This entity counts the number of times it has been triggered and activates its diff --git a/src/gs-entbase/server/game_counter_set.qc b/src/gs-entbase/server/game_counter_set.qc index efd04f65..3c4f753f 100644 --- a/src/gs-entbase/server/game_counter_set.qc +++ b/src/gs-entbase/server/game_counter_set.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED game_counter_set (0 .5 .8) (-8 -8 -8) (8 8 8) GMCNTS_REMOVE When triggered, it'll change the internal counter of its target (a game_counter) diff --git a/src/gs-entbase/server/game_player_equip.qc b/src/gs-entbase/server/game_player_equip.qc index d509a214..e6df5e40 100644 --- a/src/gs-entbase/server/game_player_equip.qc +++ b/src/gs-entbase/server/game_player_equip.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED game_player_equip (1 0 0) (-8 -8 -8) (8 8 8) GPEFL_TRIGGERONLY Entity that emits items when triggered, or upon player spawn (MP-only). diff --git a/src/gs-entbase/server/game_text.qc b/src/gs-entbase/server/game_text.qc index 7801d404..2d3804a2 100644 --- a/src/gs-entbase/server/game_text.qc +++ b/src/gs-entbase/server/game_text.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED game_text (1 0 0) (-8 -8 -8) (8 8 8) GTF_ALLPLAYERS This entity displays a message of your choice on-screen. diff --git a/src/gs-entbase/server/gibshooter.qc b/src/gs-entbase/server/gibshooter.qc index ed2fe12f..4bef3ea4 100644 --- a/src/gs-entbase/server/gibshooter.qc +++ b/src/gs-entbase/server/gibshooter.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,9 +12,9 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ -/*QUAKED gibshooter (1 0 0) (-8 -8 -8) (8 8 8) +/*QUAKED gibshooter (1 0 0) (-8 -8 -8) (8 8 8) GIBS_REPEATABLE Shoots model bouncy entities from its location. -------- KEYS -------- @@ -35,16 +35,22 @@ Shoots model bouncy entities from its location. This entity was introduced in Half-Life (1998). */ -class gibshooter2:env_shooter +class gibshooter:env_shooter { - void(void) gibshooter2; + void(void) gibshooter; + virtual void(void) Spawned; }; -void gibshooter2::gibshooter2(void) +void +gibshooter::Spawned(void) { + super::Spawned(); + m_strShootModel = "models/hgibs.mdl"; m_flShootSounds = 3; - m_flScale = 1.0; - precache_model(m_strShootModel); } + +void gibshooter::gibshooter(void) +{ +} diff --git a/src/gs-entbase/server/info_intermission.qc b/src/gs-entbase/server/info_intermission.qc index c24f1a93..4b7030e8 100644 --- a/src/gs-entbase/server/info_intermission.qc +++ b/src/gs-entbase/server/info_intermission.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED info_intermission (1 0 0) (-8 -8 -8) (8 8 8) An entity that's used to create an 'Intermission' camera. diff --git a/src/gs-entbase/server/info_notnull.qc b/src/gs-entbase/server/info_notnull.qc index 8ea9118b..0f0e3dfd 100644 --- a/src/gs-entbase/server/info_notnull.qc +++ b/src/gs-entbase/server/info_notnull.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED info_notnull (1 0 0) (-8 -8 -8) (8 8 8) Helper entity for the game-logic its vast array of entities. diff --git a/src/gs-entbase/server/info_null.qc b/src/gs-entbase/server/info_null.qc index 520624e6..05749cc6 100644 --- a/src/gs-entbase/server/info_null.qc +++ b/src/gs-entbase/server/info_null.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED info_null (1 0 0) (-8 -8 -8) (8 8 8) Helper entity for the map creation process only. diff --git a/src/gs-entbase/server/infodecal.qc b/src/gs-entbase/server/infodecal.qc index 58143f58..76db63c7 100644 --- a/src/gs-entbase/server/infodecal.qc +++ b/src/gs-entbase/server/infodecal.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED infodecal (1 0 0) (-8 -8 -8) (8 8 8) Projects a decals.wad texture onto the nearest surface. diff --git a/src/gs-entbase/server/item_food.qc b/src/gs-entbase/server/item_food.qc index 0a811639..ee692782 100644 --- a/src/gs-entbase/server/item_food.qc +++ b/src/gs-entbase/server/item_food.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED item_food (1 0 0) (-8 -8 -8) (8 8 8) This is a food item that will give the user 1 health when touched. diff --git a/src/gs-entbase/server/light.qc b/src/gs-entbase/server/light.qc index 69ef207c..a7bdb74b 100644 --- a/src/gs-entbase/server/light.qc +++ b/src/gs-entbase/server/light.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED light (1 0 0) (-8 -8 -8) (8 8 8) LFL_LINEAR x LFL_DARK LFL_NOGRID x x Infinitely small point of light illuminating the scene. diff --git a/src/gs-entbase/server/logic_auto.qc b/src/gs-entbase/server/logic_auto.qc index c94dcbcf..8b83f3b0 100644 --- a/src/gs-entbase/server/logic_auto.qc +++ b/src/gs-entbase/server/logic_auto.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED logic_auto (1 0 0) (-8 -8 -8) (8 8 8) TA_USEONCE Will automatically trigger its outputs when the level has spawned. diff --git a/src/gs-entbase/server/momentary_door.qc b/src/gs-entbase/server/momentary_door.qc index 68ca2a40..93b5a176 100644 --- a/src/gs-entbase/server/momentary_door.qc +++ b/src/gs-entbase/server/momentary_door.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED momentary_door (0 .5 .8) ? Dynamic door that will move back down if it's not being used. diff --git a/src/gs-entbase/server/momentary_rot_button.qc b/src/gs-entbase/server/momentary_rot_button.qc index d97b8225..eaba2ddf 100644 --- a/src/gs-entbase/server/momentary_rot_button.qc +++ b/src/gs-entbase/server/momentary_rot_button.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED momentary_rot_button (0 .5 .8) ? MRBFL_DOORHACK MRBFL_NOTUSE x x MRBFL_AUTORETURN x MRBFL_XAXIS MRBFL_YAXIS Dyanmic button/wheel/lever that moves back into its original position when not diff --git a/src/gs-entbase/server/momentarybase.qc b/src/gs-entbase/server/momentarybase.qc index 40053acc..c0e05921 100644 --- a/src/gs-entbase/server/momentarybase.qc +++ b/src/gs-entbase/server/momentarybase.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ typedef enum { diff --git a/src/gs-entbase/server/monster_furniture.qc b/src/gs-entbase/server/monster_furniture.qc index 7b1b4c9d..2a3c3135 100644 --- a/src/gs-entbase/server/monster_furniture.qc +++ b/src/gs-entbase/server/monster_furniture.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED monster_furniture (1 0 0) (-8 -8 -8) (8 8 8) Decorative, does nothing yet. diff --git a/src/gs-entbase/server/monster_generic.qc b/src/gs-entbase/server/monster_generic.qc index 09743968..7fb962db 100644 --- a/src/gs-entbase/server/monster_generic.qc +++ b/src/gs-entbase/server/monster_generic.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED monster_generic (1 0 0) (-8 -8 -8) (8 8 8) x x MGF_NONSOLID Decorative, does nothing yet. diff --git a/src/gs-entbase/server/monstermaker.qc b/src/gs-entbase/server/monstermaker.qc index c9d56d04..97a7500e 100644 --- a/src/gs-entbase/server/monstermaker.qc +++ b/src/gs-entbase/server/monstermaker.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED monstermaker (1 0 0) (-8 -8 -8) (8 8 8) MMF_STARTON x MMF_NONTOGGLE MMF_MONSTERCLIP The monster maker is the end-all solution to timed/controlled spawning of diff --git a/src/gs-entbase/server/multi_manager.qc b/src/gs-entbase/server/multi_manager.qc index efa0ba88..7e7f9576 100644 --- a/src/gs-entbase/server/multi_manager.qc +++ b/src/gs-entbase/server/multi_manager.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED multi_manager (1 0 0) (-8 -8 -8) (8 8 8) MM_MULTITHREADED Triggers a maximum of 16 user defined entities with additonal timers. @@ -301,13 +301,14 @@ multi_manager::Spawned(void) if (!argv(i)) break; - // HACK: Avoid infinite loops - if (targetname != argv(i)) { - m_eTriggers[b].target = argv(i); - m_eTriggers[b].m_oldstrTarget = argv(i); - m_eTriggers[b].m_flUntilTriggered = stof(argv(i+1)); - b++; - } + /* avoid infinite-loops, only when MULTITHREADED flag is NOT set */ + if ((!HasSpawnFlags(MM_MULTITHREADED) && targetname == argv(i))) + continue; + + m_eTriggers[b].target = argv(i); + m_eTriggers[b].m_oldstrTarget = argv(i); + m_eTriggers[b].m_flUntilTriggered = stof(argv(i+1)); + b++; } } diff --git a/src/gs-entbase/server/multisource.qc b/src/gs-entbase/server/multisource.qc index ef57c5d8..597478db 100644 --- a/src/gs-entbase/server/multisource.qc +++ b/src/gs-entbase/server/multisource.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED multisource (1 0 0) (-8 -8 -8) (8 8 8) An AND-gate of sorts. Every entity that targets this must return a positive diff --git a/src/gs-entbase/server/path_corner.qc b/src/gs-entbase/server/path_corner.qc index a74a6a52..e8bce96d 100644 --- a/src/gs-entbase/server/path_corner.qc +++ b/src/gs-entbase/server/path_corner.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED path_corner (1 0 0) (-8 -8 -8) (8 8 8) PC_WAIT PC_TELEPORT PC_FIREONCE Node entities used for func_trains and func_guntargets. diff --git a/src/gs-entbase/server/path_track.qc b/src/gs-entbase/server/path_track.qc index 5ece06e4..ad407635 100644 --- a/src/gs-entbase/server/path_track.qc +++ b/src/gs-entbase/server/path_track.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED path_track (1 0 0) (-8 -8 -8) (8 8 8) Node entities used for func_tracktrains. diff --git a/src/gs-entbase/server/player_loadsaved.qc b/src/gs-entbase/server/player_loadsaved.qc index 03966bb9..d0793616 100644 --- a/src/gs-entbase/server/player_loadsaved.qc +++ b/src/gs-entbase/server/player_loadsaved.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED player_loadsaved (1 0 0) (-8 -8 -8) (8 8 8) This trigger reloads the last autosaved game with a custom message. @@ -93,17 +93,10 @@ player_loadsaved::Trigger(entity act, int unused) WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); WriteByte(MSG_MULTICAST, EV_FADE); -#ifdef GS_RENDERFX WriteFloat(MSG_MULTICAST, m_vecRenderColor[0]); WriteFloat(MSG_MULTICAST, m_vecRenderColor[1]); WriteFloat(MSG_MULTICAST, m_vecRenderColor[2]); WriteFloat(MSG_MULTICAST, m_flRenderAmt); -#else - WriteFloat(MSG_MULTICAST, colormod[0]); - WriteFloat(MSG_MULTICAST, colormod[1]); - WriteFloat(MSG_MULTICAST, colormod[2]); - WriteFloat(MSG_MULTICAST, alpha); -#endif WriteFloat(MSG_MULTICAST, m_flFadeDuration); WriteFloat(MSG_MULTICAST, m_flFadeHold); diff --git a/src/gs-entbase/server/player_weaponstrip.qc b/src/gs-entbase/server/player_weaponstrip.qc index 18b075e6..58016d6b 100644 --- a/src/gs-entbase/server/player_weaponstrip.qc +++ b/src/gs-entbase/server/player_weaponstrip.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED player_weaponstrip (1 0 0) (-8 -8 -8) (8 8 8) Strips the activator of all of its weapons. diff --git a/src/gs-entbase/server/point_camera.qc b/src/gs-entbase/server/point_camera.qc index 4185fab9..fe0695bb 100644 --- a/src/gs-entbase/server/point_camera.qc +++ b/src/gs-entbase/server/point_camera.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED point_camera (1 0 0) (-8 -8 -8) (8 8 8) PCAMFL_STARTOFF A virtual camera of which its output can be displayed on a rendertarget. diff --git a/src/gs-entbase/server/prop_door_rotating.qc b/src/gs-entbase/server/prop_door_rotating.qc index 68ad424b..bebb8b4d 100644 --- a/src/gs-entbase/server/prop_door_rotating.qc +++ b/src/gs-entbase/server/prop_door_rotating.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define PRPDRFL_OPEN 1 #define PRPDRFL_LOCKED 2048 diff --git a/src/gs-entbase/server/prop_dynamic.qc b/src/gs-entbase/server/prop_dynamic.qc index 10bfbe91..e1a2b350 100644 --- a/src/gs-entbase/server/prop_dynamic.qc +++ b/src/gs-entbase/server/prop_dynamic.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED prop_dynamic (0 0.2 1) (-8 -8 -8) (8 8 8) x x x x x x x x PRPDYN_NONSOLID Client-side decorative model entity. diff --git a/src/gs-entbase/server/prop_physics.qc b/src/gs-entbase/server/prop_physics.qc index 0a632f24..e9c65c05 100644 --- a/src/gs-entbase/server/prop_physics.qc +++ b/src/gs-entbase/server/prop_physics.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED prop_physics (0 0 0.8) (-16 -16 -16) (16 16 16) PRPPHYS_ASLEEP Physics model diff --git a/src/gs-entbase/server/prop_static.qc b/src/gs-entbase/server/prop_static.qc index aa2ae486..27115121 100644 --- a/src/gs-entbase/server/prop_static.qc +++ b/src/gs-entbase/server/prop_static.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED prop_static (0 0.2 1) (-8 -8 -8) (8 8 8) SF_BASIC_COL Decorative model entity that gets baked into the level file. diff --git a/src/gs-entbase/server/random_speaker.qc b/src/gs-entbase/server/random_speaker.qc index ad9f34e2..9029e039 100644 --- a/src/gs-entbase/server/random_speaker.qc +++ b/src/gs-entbase/server/random_speaker.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED random_speaker (1 0 0) (-8 -8 -8) (8 8 8) This entity plays a .wav file at random intervals. diff --git a/src/gs-entbase/server/random_trigger.qc b/src/gs-entbase/server/random_trigger.qc index aaf1aec5..18553c6d 100644 --- a/src/gs-entbase/server/random_trigger.qc +++ b/src/gs-entbase/server/random_trigger.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED random_trigger (1 0 0) (-8 -8 -8) (8 8 8) When triggered, it'll calculate some random interval until it triggers diff --git a/src/gs-entbase/server/scripted_sentence.qc b/src/gs-entbase/server/scripted_sentence.qc index 986037bd..6c0669a5 100644 --- a/src/gs-entbase/server/scripted_sentence.qc +++ b/src/gs-entbase/server/scripted_sentence.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED scripted_sentence (1 0 0) (-8 -8 -8) (8 8 8) Triggers a sound event on the client side associated with an entity in the diff --git a/src/gs-entbase/server/scripted_sequence.qc b/src/gs-entbase/server/scripted_sequence.qc index a02483c1..0ac419c5 100644 --- a/src/gs-entbase/server/scripted_sequence.qc +++ b/src/gs-entbase/server/scripted_sequence.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED scripted_sequence (1 0 0) (-8 -8 -8) (8 8 8) x x SSFL_REPEATABLE SSFL_LEAVECORPSE x SSFL_NOINTERRUPT SSFL_OVERRIDEAI SSFL_NOSCRIPTMOVE Allow an actor to be selected and given an action to perform. diff --git a/src/gs-entbase/server/speaker.qc b/src/gs-entbase/server/speaker.qc index 18765f13..60d74028 100644 --- a/src/gs-entbase/server/speaker.qc +++ b/src/gs-entbase/server/speaker.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED speaker (1 0 0) (-8 -8 -8) (8 8 8) Creates a public announcement system that randomly plays announcements from @@ -129,11 +129,8 @@ speaker::Respawn(void) /* force this thing to be networked */ SetModel("models/player.mdl"); SetOrigin(GetSpawnOrigin()); - -#ifdef GS_RENDERFX SetRenderMode(RM_COLOR); SetRenderAmt(0); -#endif think = Annouce; diff --git a/src/gs-entbase/server/stubs.qc b/src/gs-entbase/server/stubs.qc index 83da8743..eca7abf3 100644 --- a/src/gs-entbase/server/stubs.qc +++ b/src/gs-entbase/server/stubs.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED info_player_start (1 1 1) (-16 -16 -36) (16 16 36) Player spawn position for single-player games. diff --git a/src/gs-entbase/server/targ_speaker.qc b/src/gs-entbase/server/targ_speaker.qc index 0592e402..53206d37 100644 --- a/src/gs-entbase/server/targ_speaker.qc +++ b/src/gs-entbase/server/targ_speaker.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED targ_speaker (1 0 0) (-8 -8 -8) (8 8 8) This entity plays a sample upon triggering at a specified volume. diff --git a/src/gs-entbase/server/target_cdaudio.qc b/src/gs-entbase/server/target_cdaudio.qc index 11008373..2d535a29 100644 --- a/src/gs-entbase/server/target_cdaudio.qc +++ b/src/gs-entbase/server/target_cdaudio.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED target_cdaudio (1 0 0) (-8 -8 -8) (8 8 8) A radius based trigger_cdaudio. diff --git a/src/gs-entbase/server/trigger_auto.qc b/src/gs-entbase/server/trigger_auto.qc index 4a8a27de..ec09b0fc 100644 --- a/src/gs-entbase/server/trigger_auto.qc +++ b/src/gs-entbase/server/trigger_auto.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_auto (1 0 0) (-8 -8 -8) (8 8 8) TA_USEONCE Will automatically trigger its target when the level has spawned. diff --git a/src/gs-entbase/server/trigger_autosave.qc b/src/gs-entbase/server/trigger_autosave.qc index 7d8b7269..0eab882b 100644 --- a/src/gs-entbase/server/trigger_autosave.qc +++ b/src/gs-entbase/server/trigger_autosave.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_autosave (0 .5 .8) ? Volume that'll save the current game when a client enters its bounds. diff --git a/src/gs-entbase/server/trigger_cdaudio.qc b/src/gs-entbase/server/trigger_cdaudio.qc index 3fe11406..3de9c0b4 100644 --- a/src/gs-entbase/server/trigger_cdaudio.qc +++ b/src/gs-entbase/server/trigger_cdaudio.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_cdaudio (0 .5 .8) ? Switches the background music track when triggered. diff --git a/src/gs-entbase/server/trigger_changelevel.qc b/src/gs-entbase/server/trigger_changelevel.qc index 7e417cad..a6bfef87 100644 --- a/src/gs-entbase/server/trigger_changelevel.qc +++ b/src/gs-entbase/server/trigger_changelevel.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_changelevel (0 .5 .8) ? LC_NOINTERMISSION LC_USEONLY When a Landmark is specified, you will have to position two info_landmark diff --git a/src/gs-entbase/server/trigger_changetarget.qc b/src/gs-entbase/server/trigger_changetarget.qc index 6e90ced0..8407a724 100644 --- a/src/gs-entbase/server/trigger_changetarget.qc +++ b/src/gs-entbase/server/trigger_changetarget.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_changetarget (1 0 0) (-8 -8 -8) (8 8 8) When triggered, trigger_changetarget changes the 'target' value of any entity diff --git a/src/gs-entbase/server/trigger_counter.qc b/src/gs-entbase/server/trigger_counter.qc index 47c84283..56d59288 100644 --- a/src/gs-entbase/server/trigger_counter.qc +++ b/src/gs-entbase/server/trigger_counter.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_counter (0 .5 .8) ? TRCNT_SILENT TRCNT_NOCLIENTS TRCNT_PUSHABLES This entity counts the number of times it has been triggered and activates its @@ -111,11 +111,6 @@ trigger_counter::Respawn(void) m_iValue = 0; m_iCounted = 0; SetSolid(SOLID_TRIGGER); - -#ifdef GS_RENDERFX - //SetRenderMode(RM_TRIGGER); -#endif - InitBrushTrigger(); } diff --git a/src/gs-entbase/server/trigger_endsection.qc b/src/gs-entbase/server/trigger_endsection.qc index 7c07dd33..744e483e 100644 --- a/src/gs-entbase/server/trigger_endsection.qc +++ b/src/gs-entbase/server/trigger_endsection.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_endsection (0 .5 .8) ? This trigger shuts down the server. diff --git a/src/gs-entbase/server/trigger_hurt.qc b/src/gs-entbase/server/trigger_hurt.qc index 119ae4d9..eeb1c2b5 100644 --- a/src/gs-entbase/server/trigger_hurt.qc +++ b/src/gs-entbase/server/trigger_hurt.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_hurt (0 .5 .8) ? SF_HURT_ONCE SF_HURT_OFF x SF_HURT_NOPLAYERS SF_HURT_FIREONPLAYER SF_HURT_TOUCHPLAYER Trigger volume that damages everything it touches. diff --git a/src/gs-entbase/server/trigger_look.qc b/src/gs-entbase/server/trigger_look.qc index bbc6d763..4c71b325 100644 --- a/src/gs-entbase/server/trigger_look.qc +++ b/src/gs-entbase/server/trigger_look.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_look (0 .5 .8) ? Triggers itself when a player is inside its volume and is looking at a diff --git a/src/gs-entbase/server/trigger_multiple.qc b/src/gs-entbase/server/trigger_multiple.qc index d0aea378..66868475 100644 --- a/src/gs-entbase/server/trigger_multiple.qc +++ b/src/gs-entbase/server/trigger_multiple.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_multiple (0 .5 .8) ? TM_MONSTERS TM_NOCLIENTS TM_PUSHABLES A trigger volume which works more than once. diff --git a/src/gs-entbase/server/trigger_once.qc b/src/gs-entbase/server/trigger_once.qc index cf711163..4bdc2ce5 100644 --- a/src/gs-entbase/server/trigger_once.qc +++ b/src/gs-entbase/server/trigger_once.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_once (0 .5 .8) ? TO_MONSTERS TO_NOCLIENTS TO_PUSHABLES A trigger volume which works only once. diff --git a/src/gs-entbase/server/trigger_playerfreeze.qc b/src/gs-entbase/server/trigger_playerfreeze.qc index dcacc6c7..d9b2b3b3 100644 --- a/src/gs-entbase/server/trigger_playerfreeze.qc +++ b/src/gs-entbase/server/trigger_playerfreeze.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_playerfreeze (1 0 0) (-8 -8 -8) (8 8 8) Trigger that freezes all clients, until it is triggered again. diff --git a/src/gs-entbase/server/trigger_push.qc b/src/gs-entbase/server/trigger_push.qc index 8a830522..def7fadc 100644 --- a/src/gs-entbase/server/trigger_push.qc +++ b/src/gs-entbase/server/trigger_push.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_push (0 .5 .8) ? TP_ONCE TP_STARTOFF Pushes anything in its volume into a direction of your choosing. diff --git a/src/gs-entbase/server/trigger_relay.qc b/src/gs-entbase/server/trigger_relay.qc index 8e5eceb2..89daf573 100644 --- a/src/gs-entbase/server/trigger_relay.qc +++ b/src/gs-entbase/server/trigger_relay.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_relay (0 .5 .8) ? TRLY_ONCE This is an inbetween trigger that forces a desired output state diff --git a/src/gs-entbase/server/trigger_teleport.qc b/src/gs-entbase/server/trigger_teleport.qc index 2ddf1b9d..09b09133 100644 --- a/src/gs-entbase/server/trigger_teleport.qc +++ b/src/gs-entbase/server/trigger_teleport.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_teleport (0 .5 .8) ? Teleportation volume. Teleports anything it touches to the position of diff --git a/src/gs-entbase/server/trigger_transition.qc b/src/gs-entbase/server/trigger_transition.qc index b583af02..54bf9a90 100644 --- a/src/gs-entbase/server/trigger_transition.qc +++ b/src/gs-entbase/server/trigger_transition.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_transition (0 .5 .8) ? Currently unused. This is meant for defining level transition regions. diff --git a/src/gs-entbase/shared.src b/src/gs-entbase/shared.src index 7eb27260..10782cb2 100644 --- a/src/gs-entbase/shared.src +++ b/src/gs-entbase/shared.src @@ -20,6 +20,7 @@ shared/ambient_generic.qc shared/decals.qc shared/spraylogo.qc shared/func_friction.qc +shared/env_sprite.qc shared/env_bubbles.qc shared/env_projectedtexture.qc shared/env_fog_controller.qc diff --git a/src/gs-entbase/shared/NSBrushTrigger.h b/src/gs-entbase/shared/NSBrushTrigger.h index 886132bf..6d539504 100644 --- a/src/gs-entbase/shared/NSBrushTrigger.h +++ b/src/gs-entbase/shared/NSBrushTrigger.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class NSBrushTrigger:NSEntity { diff --git a/src/gs-entbase/shared/NSBrushTrigger.qc b/src/gs-entbase/shared/NSBrushTrigger.qc index 69ec9090..d59bc3b3 100644 --- a/src/gs-entbase/shared/NSBrushTrigger.qc +++ b/src/gs-entbase/shared/NSBrushTrigger.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef SERVER void @@ -27,4 +27,4 @@ NSBrushTrigger::InitBrushTrigger(void) void NSBrushTrigger::NSBrushTrigger(void) { -} \ No newline at end of file +} diff --git a/src/gs-entbase/shared/NSEntity.h b/src/gs-entbase/shared/NSEntity.h index ccb1b255..91945ef1 100644 --- a/src/gs-entbase/shared/NSEntity.h +++ b/src/gs-entbase/shared/NSEntity.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { @@ -29,13 +29,9 @@ enumflags BASEFL_CHANGED_BODY, BASEFL_CHANGED_SCALE, BASEFL_CHANGED_VELOCITY, -#ifdef GS_RENDERFX BASEFL_CHANGED_RENDERCOLOR, BASEFL_CHANGED_RENDERAMT, BASEFL_CHANGED_RENDERMODE, -#else - BASEFL_CHANGED_ALPHA, -#endif }; /* NSEntity is the lowest, user accessible class. diff --git a/src/gs-entbase/shared/NSEntity.qc b/src/gs-entbase/shared/NSEntity.qc index 9a3e459e..235409ab 100644 --- a/src/gs-entbase/shared/NSEntity.qc +++ b/src/gs-entbase/shared/NSEntity.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ float NSEntity::EntIndex(void) diff --git a/src/gs-entbase/shared/NSIO.h b/src/gs-entbase/shared/NSIO.h index 34554d37..4e9547d9 100644 --- a/src/gs-entbase/shared/NSIO.h +++ b/src/gs-entbase/shared/NSIO.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* NSIO class is responsible for handling entity spawns, respawns, save/load as well as key/value pair loading, as well as inputs/outputs diff --git a/src/gs-entbase/shared/NSIO.qc b/src/gs-entbase/shared/NSIO.qc index 8af42cf2..3f304a09 100644 --- a/src/gs-entbase/shared/NSIO.qc +++ b/src/gs-entbase/shared/NSIO.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void NSIO::Respawn(void) diff --git a/src/gs-entbase/shared/NSInteractiveSurface.qc b/src/gs-entbase/shared/NSInteractiveSurface.qc index 282593ad..8ea3bef9 100644 --- a/src/gs-entbase/shared/NSInteractiveSurface.qc +++ b/src/gs-entbase/shared/NSInteractiveSurface.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,19 +12,19 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED NSInteractiveSurface (1 0 0) (-8 -8 -8) (8 8 8) Fully interactive surface -------- KEYS -------- -"angles" : Sets the pitch, yaw and roll angles of the sprite. +"angles" : Sets the pitch, yaw and roll angles of the surface. "ui_class" : Which UI class to use "ui_res" : Resolution of the interface "ui_size" : Size of the interface in world coordinates -------- SPAWNFLAGS -------- -None +None yet -------- NOTES -------- Similar to surfaces in Doom III and Duke 4 @@ -167,6 +167,8 @@ NSInteractiveSurface::Input(float flEVType, float flKey, float flChar, float flD { if (m_UIChain) m_UIChain.Input(flEVType, flKey, flChar, flDevID); + + return true; } /* called whenever we are in the proximity of a surface */ diff --git a/src/gs-entbase/shared/NSMonster.h b/src/gs-entbase/shared/NSMonster.h index 15d48c30..ea645abf 100644 --- a/src/gs-entbase/shared/NSMonster.h +++ b/src/gs-entbase/shared/NSMonster.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ typedef enum { ACT_RESET = 0, diff --git a/src/gs-entbase/shared/NSMonster.qc b/src/gs-entbase/shared/NSMonster.qc index a03227fc..25d34621 100644 --- a/src/gs-entbase/shared/NSMonster.qc +++ b/src/gs-entbase/shared/NSMonster.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef SERVER int @@ -848,10 +848,8 @@ NSMonster::SendEntity(entity ePEnt, float fChanged) fChanged &= ~BASEFL_CHANGED_SOLID; if (movetype == MOVETYPE_NONE) fChanged &= ~BASEFL_CHANGED_MOVETYPE; -#ifdef GS_RENDERFX if (m_iRenderMode == RM_NORMAL) fChanged &= ~BASEFL_CHANGED_RENDERMODE; -#endif } /* don't network triggers unless provoked */ @@ -910,8 +908,6 @@ NSMonster::SendEntity(entity ePEnt, float fChanged) WriteFloat(MSG_ENTITY, velocity[1]); WriteFloat(MSG_ENTITY, velocity[2]); } - -#ifdef GS_RENDERFX if (fChanged & BASEFL_CHANGED_RENDERMODE) { WriteByte(MSG_ENTITY, m_iRenderMode); WriteByte(MSG_ENTITY, m_iRenderFX); @@ -925,11 +921,6 @@ NSMonster::SendEntity(entity ePEnt, float fChanged) if (fChanged & BASEFL_CHANGED_RENDERAMT) { WriteFloat(MSG_ENTITY, m_flRenderAmt); } -#else - if (fChanged & BASEFL_CHANGED_ALPHA) { - WriteFloat(MSG_ENTITY, alpha); - } -#endif return (1); } @@ -1027,7 +1018,6 @@ NSMonster::ReceiveEntity(float flNew, float flChanged) velocity[2] = readfloat(); } -#ifdef GS_RENDERFX if (flChanged & BASEFL_CHANGED_RENDERMODE) { m_iRenderMode = readbyte(); m_iRenderFX = readbyte(); @@ -1040,11 +1030,6 @@ NSMonster::ReceiveEntity(float flNew, float flChanged) if (flChanged & BASEFL_CHANGED_RENDERAMT) { m_flRenderAmt = readfloat(); } -#else - if (flChanged & BASEFL_CHANGED_ALPHA) { - alpha = readfloat(); - } -#endif if (modelindex) { drawmask = MASK_ENGINE; diff --git a/src/gs-entbase/shared/NSPhysicsEntity.h b/src/gs-entbase/shared/NSPhysicsEntity.h index 22bcd506..b89ad688 100644 --- a/src/gs-entbase/shared/NSPhysicsEntity.h +++ b/src/gs-entbase/shared/NSPhysicsEntity.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enum { @@ -49,13 +49,9 @@ enumflags PHYENT_CHANGED_BODY, PHYENT_CHANGED_SCALE, PHYENT_CHANGED_VELOCITY, -#ifdef GS_RENDERFX PHYENT_CHANGED_RENDERCOLOR, PHYENT_CHANGED_RENDERAMT, PHYENT_CHANGED_RENDERMODE, -#else - PHYENT_CHANGED_ALPHA, -#endif }; class NSPhysicsEntity:NSSurfacePropEntity diff --git a/src/gs-entbase/shared/NSPhysicsEntity.qc b/src/gs-entbase/shared/NSPhysicsEntity.qc index ace6fe8f..7506b90d 100644 --- a/src/gs-entbase/shared/NSPhysicsEntity.qc +++ b/src/gs-entbase/shared/NSPhysicsEntity.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define ODE_MODE 1 @@ -107,7 +107,6 @@ NSPhysicsEntity::EvaluateEntity(void) SAVE_STATE(scale); SAVE_STATE(velocity); -#ifdef GS_RENDERFX if (ATTR_CHANGED(m_iRenderMode)) { SetSendFlags(PHYENT_CHANGED_RENDERMODE); } @@ -121,11 +120,6 @@ NSPhysicsEntity::EvaluateEntity(void) if (ATTR_CHANGED(m_flRenderAmt)) { SetSendFlags(PHYENT_CHANGED_RENDERAMT); } -#else - if (ATTR_CHANGED(alpha)) { - SetSendFlags(PHYENT_CHANGED_ALPHA); - } -#endif } float @@ -174,10 +168,8 @@ NSPhysicsEntity::SendEntity(entity ePEnt, float fChanged) fChanged &= ~PHYENT_CHANGED_SOLID; if (movetype == MOVETYPE_NONE) fChanged &= ~PHYENT_CHANGED_MOVETYPE; -#ifdef GS_RENDERFX if (m_iRenderMode == RM_NORMAL) fChanged &= ~PHYENT_CHANGED_RENDERMODE; -#endif } /* broadcast how much data is expected to be read */ @@ -242,7 +234,6 @@ NSPhysicsEntity::SendEntity(entity ePEnt, float fChanged) WriteFloat(MSG_ENTITY, velocity[2]); } -#ifdef GS_RENDERFX if (fChanged & PHYENT_CHANGED_RENDERMODE) { WriteByte(MSG_ENTITY, m_iRenderMode); WriteByte(MSG_ENTITY, m_iRenderFX); @@ -259,11 +250,6 @@ NSPhysicsEntity::SendEntity(entity ePEnt, float fChanged) if (fChanged & PHYENT_CHANGED_RENDERAMT) { WriteFloat(MSG_ENTITY, m_flRenderAmt); } -#else - if (fChanged & PHYENT_CHANGED_ALPHA) { - WriteFloat(MSG_ENTITY, alpha); - } -#endif return (1); } @@ -340,7 +326,6 @@ NSPhysicsEntity::ReceiveEntity(float flNew, float flChanged) velocity[2] = readfloat(); } -#ifdef GS_RENDERFX if (flChanged & PHYENT_CHANGED_RENDERMODE) { m_iRenderMode = readbyte(); m_iRenderFX = readbyte(); @@ -356,11 +341,6 @@ NSPhysicsEntity::ReceiveEntity(float flNew, float flChanged) if (flChanged & PHYENT_CHANGED_RENDERAMT) { m_flRenderAmt = readfloat(); } -#else - if (flChanged & PHYENT_CHANGED_ALPHA) { - alpha = readfloat(); - } -#endif if (modelindex) { drawmask = MASK_ENGINE; diff --git a/src/gs-entbase/shared/NSPointTrigger.h b/src/gs-entbase/shared/NSPointTrigger.h index 110ec0d2..46546070 100644 --- a/src/gs-entbase/shared/NSPointTrigger.h +++ b/src/gs-entbase/shared/NSPointTrigger.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class NSPointTrigger:NSEntity { @@ -21,4 +21,4 @@ class NSPointTrigger:NSEntity #ifdef SERVER virtual void(void) InitPointTrigger; #endif -}; \ No newline at end of file +}; diff --git a/src/gs-entbase/shared/NSPointTrigger.qc b/src/gs-entbase/shared/NSPointTrigger.qc index fdfa44f2..65351b4c 100644 --- a/src/gs-entbase/shared/NSPointTrigger.qc +++ b/src/gs-entbase/shared/NSPointTrigger.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void NSPointTrigger::InitPointTrigger(void) @@ -25,4 +25,4 @@ NSPointTrigger::InitPointTrigger(void) void NSPointTrigger::NSPointTrigger(void) { -} \ No newline at end of file +} diff --git a/src/gs-entbase/shared/NSProjectile.h b/src/gs-entbase/shared/NSProjectile.h index 366d2f6b..bf65269e 100644 --- a/src/gs-entbase/shared/NSProjectile.h +++ b/src/gs-entbase/shared/NSProjectile.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Vera Visions L.L.C. + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class NSProjectile:NSSurfacePropEntity { diff --git a/src/gs-entbase/shared/NSProjectile.qc b/src/gs-entbase/shared/NSProjectile.qc index a2244e24..5bdd9614 100644 --- a/src/gs-entbase/shared/NSProjectile.qc +++ b/src/gs-entbase/shared/NSProjectile.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Vera Visions L.L.C. + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void NSProjectile::ProjectileTouch(void) diff --git a/src/gs-entbase/shared/NSRenderableEntity.h b/src/gs-entbase/shared/NSRenderableEntity.h index 883a2779..5441f82b 100644 --- a/src/gs-entbase/shared/NSRenderableEntity.h +++ b/src/gs-entbase/shared/NSRenderableEntity.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { @@ -33,13 +33,9 @@ enumflags RDENT_CHANGED_BODY, RDENT_CHANGED_SCALE, RDENT_CHANGED_VELOCITY, -#ifdef GS_RENDERFX RDENT_CHANGED_RENDERCOLOR, RDENT_CHANGED_RENDERAMT, RDENT_CHANGED_RENDERMODE, -#else - RDENT_CHANGED_ALPHA, -#endif }; #ifdef CLIENT @@ -87,7 +83,6 @@ class NSRenderableEntity:NSEntity nonvirtual void(float) SetScale; virtual void(void) MakeStatic; -#ifdef GS_RENDERFX PREDICTED_FLOAT(m_iRenderFX); PREDICTED_FLOAT(m_iRenderMode); PREDICTED_FLOAT(m_flRenderAmt); @@ -108,5 +103,4 @@ class NSRenderableEntity:NSEntity float m_oldflRenderAmt; vector m_oldvecRenderColor; #endif -#endif }; diff --git a/src/gs-entbase/shared/NSRenderableEntity.qc b/src/gs-entbase/shared/NSRenderableEntity.qc index 7e9c80ff..13885867 100644 --- a/src/gs-entbase/shared/NSRenderableEntity.qc +++ b/src/gs-entbase/shared/NSRenderableEntity.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ============ @@ -31,12 +31,10 @@ NSRenderableEntity::MakeStatic(void) #ifdef CLIENT /* give renderFX the opportunity to write into renderable * fields at least once before forever pulling it out the cgame */ -#ifdef GS_RENDERFX if (m_iRenderMode > RM_FULLBRIGHT) return; RenderFXPass(); -#endif /* static ents = no collision, so let's make a copy for visibility */ if (alpha > 0.0) @@ -114,7 +112,6 @@ NSRenderableEntity::EvaluateEntity(void) SAVE_STATE(scale); SAVE_STATE(velocity); -#ifdef GS_RENDERFX if (ATTR_CHANGED(m_iRenderMode)) { SetSendFlags(RDENT_CHANGED_RENDERMODE); } @@ -132,12 +129,6 @@ NSRenderableEntity::EvaluateEntity(void) SAVE_STATE(m_iRenderFX); SAVE_STATE(m_vecRenderColor); SAVE_STATE(m_flRenderAmt); -#else - if (ATTR_CHANGED(alpha)) { - SetSendFlags(RDENT_CHANGED_ALPHA); - } - SAVE_STATE(alpha); -#endif } /* Make sure StartFrame calls this */ @@ -188,10 +179,8 @@ NSRenderableEntity::SendEntity(entity ePEnt, float fChanged) fChanged &= ~RDENT_CHANGED_SOLID; if (movetype == MOVETYPE_NONE) fChanged &= ~RDENT_CHANGED_MOVETYPE; -#ifdef GS_RENDERFX if (m_iRenderMode == RM_NORMAL) fChanged &= ~RDENT_CHANGED_RENDERMODE; -#endif } #endif @@ -263,7 +252,6 @@ NSRenderableEntity::SendEntity(entity ePEnt, float fChanged) WriteFloat(MSG_ENTITY, velocity[2]); } -#ifdef GS_RENDERFX if (fChanged & RDENT_CHANGED_RENDERMODE) { WriteByte(MSG_ENTITY, m_iRenderMode); WriteByte(MSG_ENTITY, m_iRenderFX); @@ -280,16 +268,11 @@ NSRenderableEntity::SendEntity(entity ePEnt, float fChanged) if (fChanged & RDENT_CHANGED_RENDERAMT) { WriteFloat(MSG_ENTITY, m_flRenderAmt); } -#else - if (fChanged & RDENT_CHANGED_ALPHA) { - WriteFloat(MSG_ENTITY, alpha); - } -#endif return (1); } #else -#ifdef GS_RENDERFX + /* ============ NSRenderableEntity::RenderFXPass @@ -362,6 +345,8 @@ NSRenderableEntity::RenderFXPass(void) alpha = (m_flRenderAmt == 0.0) ? 0.0f : 1.0f; break; case RM_ADDITIVE: + effects = EF_ADDITIVE; + break; case RM_ADDFRAC: /* TODO: Figure out what this does differently */ effects = EF_ADDITIVE; if (autocvar_rm_unlit_additive == 0) { @@ -389,6 +374,7 @@ NSRenderableEntity::RenderFXPass(void) case RM_DONTRENDER: /* prevent addentity() from being called */ alpha = 0.0f; + break; } switch (m_iRenderFX) { @@ -506,7 +492,7 @@ NSRenderableEntity::RenderFXPass(void) glowmod[0] = 1.0f; } } -#endif + /* ============ NSRenderableEntity::ReceiveEntity @@ -579,11 +565,11 @@ NSRenderableEntity::ReceiveEntity(float flNew, float flChanged) velocity[2] = readfloat(); } -#ifdef GS_RENDERFX if (flChanged & RDENT_CHANGED_RENDERMODE) { m_iRenderMode = readbyte(); m_iRenderFX = readbyte(); } + if (flChanged & RDENT_CHANGED_RENDERCOLOR) { m_vecRenderColor[0] = readfloat(); m_vecRenderColor[1] = readfloat(); @@ -592,20 +578,10 @@ NSRenderableEntity::ReceiveEntity(float flNew, float flChanged) glowmod[1] = readfloat(); glowmod[2] = readfloat(); } + if (flChanged & RDENT_CHANGED_RENDERAMT) { m_flRenderAmt = readfloat(); } -#else - if (flChanged & RDENT_CHANGED_ALPHA) { - alpha = readfloat(); - } -#endif - - if (modelindex) { - drawmask = MASK_ENGINE; - } else { - drawmask = 0; - } if (scale == 0.0) scale = 1.0f; @@ -640,7 +616,7 @@ NSRenderableEntity::RenderDebugSkeleton(void) /* ============ -NSEntity::predraw +NSRenderableEntity::predraw a lot of the things in here don't even apply to most entities, so TODO: make things like anims, sentences apply @@ -654,10 +630,7 @@ NSRenderableEntity::predraw(void) return (PREDRAW_NEXT); } -#ifdef GS_RENDERFX RenderFXPass(); -#endif - RenderDebugSkeleton(); if (serverkeyfloat(SERVERKEY_PAUSESTATE) != 1) @@ -685,14 +658,12 @@ NSRenderableEntity::predraw(void) void NSRenderableEntity::Respawn(void) { - NSEntity::Respawn(); + super::Respawn(); -#ifdef GS_RENDERFX SetRenderFX(m_oldiRenderFX); SetRenderMode(m_oldiRenderMode); SetRenderAmt(m_oldflRenderAmt); SetRenderColor(m_oldvecRenderColor); -#endif } void @@ -753,7 +724,6 @@ NSRenderableEntity::SetScale(float newScale) setsize(this, m_vecMins * scale, m_vecMaxs * scale); } -#ifdef GS_RENDERFX void NSRenderableEntity::SetRenderFX(float newFX) { @@ -786,30 +756,21 @@ NSRenderableEntity::SetRenderColor(vector newColor) m_vecRenderColor = newColor; } -#endif - #ifdef SERVER void NSRenderableEntity::Save(float handle) { + super::Save(handle); SaveInt(handle, "body", m_iBody); SaveFloat(handle, "frame", frame); SaveFloat(handle, "scale", scale); SaveFloat(handle, "skin", skin); SaveFloat(handle, "effects", effects); - -#ifndef GS_RENDERFX - SaveVector(handle, "color", colormod); - SaveFloat(handle, "alpha", alpha); -#else SaveFloat(handle, "renderamt", m_flRenderAmt); SaveVector(handle, "rendercolor", m_vecRenderColor); SaveFloat(handle, "rendermode", m_iRenderMode); SaveFloat(handle, "renderfx", m_iRenderFX); -#endif - - super::Save(handle); } void NSRenderableEntity::Restore(string strKey, string strValue) @@ -830,14 +791,6 @@ NSRenderableEntity::Restore(string strKey, string strValue) case "effects": effects = stof(strValue); break; -#ifndef GS_RENDERFX - case "color": - colormod = stov(strValue); - break; - case "alpha": - alpha = stof(strValue); - break; -#else case "renderamt": m_flRenderAmt = stof(strValue) / 255; break; @@ -850,7 +803,6 @@ NSRenderableEntity::Restore(string strKey, string strValue) case "renderfx": m_iRenderFX = stof(strValue); break; -#endif default: super::Restore(strKey, strValue); } @@ -861,18 +813,10 @@ NSRenderableEntity::Input(entity eAct, string strInput, string strData) { switch (strInput) { case "Color": -#ifdef GS_RENDERFX SetRenderColor(stov(strData) / 255); -#else - colormod = stov(strData) / 255; -#endif break; case "Alpha": -#ifdef GS_RENDERFX SetRenderAmt(stof(strData) / 255); -#else - alpha = stof(strData) / 255; -#endif break; case "DisableShadow": effects |= EF_NOSHADOW; @@ -881,7 +825,7 @@ NSRenderableEntity::Input(entity eAct, string strInput, string strData) effects &= ~EF_NOSHADOW; break; default: - NSEntity::Input(eAct, strInput, strData); + super::Input(eAct, strInput, strData); } } #endif @@ -910,36 +854,33 @@ NSRenderableEntity::SpawnKey(string strKey, string strValue) if (stof(strValue) == 1) { effects |= EF_NOSHADOW; } - case "color": -#ifdef GS_RENDERFX - m_vecRenderColor = stov(strValue); -#else - colormod = stov(strValue); -#endif break; - case "alpha": -#ifdef GS_RENDERFX - m_flRenderAmt = stof(strValue); -#else - alpha = stof(strValue); -#endif - break; -#ifdef GS_RENDERFX case "renderamt": m_flRenderAmt = stof(strValue) / 255; +#ifdef SERVER + m_oldflRenderAmt = m_flRenderAmt; +#endif break; case "rendercolor": m_vecRenderColor = stov(strValue) / 255; +#ifdef SERVER + m_oldvecRenderColor = m_vecRenderColor; +#endif break; case "rendermode": m_iRenderMode = stof(strValue); +#ifdef SERVER + m_oldiRenderMode = m_iRenderMode; +#endif break; case "renderfx": m_iRenderFX = stof(strValue); - break; +#ifdef SERVER + m_oldiRenderFX = m_iRenderFX; #endif + break; default: - NSEntity::SpawnKey(strKey, strValue); + super::SpawnKey(strKey, strValue); break; } } @@ -948,18 +889,8 @@ void NSRenderableEntity::NSRenderableEntity(void) { effects |= EF_NOSHADOW; - //scale = 1.0f; -#ifdef SERVER -#ifdef GS_RENDERFX - m_oldiRenderFX = m_iRenderFX; - m_oldiRenderMode = m_iRenderMode; - m_oldvecRenderColor = m_vecRenderColor; - m_oldflRenderAmt = m_flRenderAmt; - m_oldvecRenderColor = m_vecRenderColor; - m_oldflRenderAmt = m_flRenderAmt; -#endif -#else +#ifdef CLIENT drawmask = MASK_ENGINE; #endif } @@ -977,7 +908,5 @@ NSRenderableEntity_ReadEntity(bool new) fl = readfloat(); rend.ReceiveEntity(new, fl); - - //print(sprintf("rendent ent update: %d %x %d %v\n", self.entnum, fl, self.origin, vlen(self.velocity))); } #endif diff --git a/src/gs-entbase/shared/NSSurfacePropEntity.h b/src/gs-entbase/shared/NSSurfacePropEntity.h index c52eb7b6..cf5701e4 100644 --- a/src/gs-entbase/shared/NSSurfacePropEntity.h +++ b/src/gs-entbase/shared/NSSurfacePropEntity.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { @@ -29,13 +29,9 @@ enumflags SRFENT_CHANGED_BODY, SRFENT_CHANGED_SCALE, SRFENT_CHANGED_VELOCITY, -#ifdef GS_RENDERFX SRFENT_CHANGED_RENDERCOLOR, SRFENT_CHANGED_RENDERAMT, SRFENT_CHANGED_RENDERMODE, -#else - SRFENT_CHANGED_ALPHA, -#endif }; class NSSurfacePropEntity:NSRenderableEntity diff --git a/src/gs-entbase/shared/NSSurfacePropEntity.qc b/src/gs-entbase/shared/NSSurfacePropEntity.qc index 92da51c4..bccb367c 100644 --- a/src/gs-entbase/shared/NSSurfacePropEntity.qc +++ b/src/gs-entbase/shared/NSSurfacePropEntity.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void NSSurfacePropEntity::Spawned(void) @@ -89,7 +89,6 @@ NSSurfacePropEntity::EvaluateEntity(void) SAVE_STATE(scale); SAVE_STATE(velocity); -#ifdef GS_RENDERFX if (ATTR_CHANGED(m_iRenderMode)) { SetSendFlags(SRFENT_CHANGED_RENDERMODE); } @@ -107,12 +106,6 @@ NSSurfacePropEntity::EvaluateEntity(void) SAVE_STATE(m_iRenderFX); SAVE_STATE(m_vecRenderColor); SAVE_STATE(m_flRenderAmt); -#else - if (ATTR_CHANGED(alpha)) { - SetSendFlags(SRFENT_CHANGED_ALPHA); - } - SAVE_STATE(alpha); -#endif } /* Make sure StartFrame calls this */ @@ -157,10 +150,8 @@ NSSurfacePropEntity::SendEntity(entity ePEnt, float fChanged) fChanged &= ~SRFENT_CHANGED_SOLID; if (movetype == MOVETYPE_NONE) fChanged &= ~SRFENT_CHANGED_MOVETYPE; -#ifdef GS_RENDERFX if (m_iRenderMode == RM_NORMAL) fChanged &= ~SRFENT_CHANGED_RENDERMODE; -#endif } #endif @@ -225,7 +216,6 @@ NSSurfacePropEntity::SendEntity(entity ePEnt, float fChanged) WriteFloat(MSG_ENTITY, velocity[2]); } -#ifdef GS_RENDERFX if (fChanged & SRFENT_CHANGED_RENDERMODE) { WriteByte(MSG_ENTITY, m_iRenderMode); WriteByte(MSG_ENTITY, m_iRenderFX); @@ -242,11 +232,7 @@ NSSurfacePropEntity::SendEntity(entity ePEnt, float fChanged) if (fChanged & SRFENT_CHANGED_RENDERAMT) { WriteFloat(MSG_ENTITY, m_flRenderAmt); } -#else - if (fChanged & SRFENT_CHANGED_ALPHA) { - WriteFloat(MSG_ENTITY, alpha); - } -#endif + return (1); } @@ -318,7 +304,6 @@ NSSurfacePropEntity::ReceiveEntity(float flNew, float flChanged) velocity[2] = readfloat(); } -#ifdef GS_RENDERFX if (flChanged & SRFENT_CHANGED_RENDERMODE) { m_iRenderMode = readbyte(); m_iRenderFX = readbyte(); @@ -334,11 +319,6 @@ NSSurfacePropEntity::ReceiveEntity(float flNew, float flChanged) if (flChanged & SRFENT_CHANGED_RENDERAMT) { m_flRenderAmt = readfloat(); } -#else - if (flChanged & SRFENT_CHANGED_ALPHA) { - alpha = readfloat(); - } -#endif if (modelindex) { drawmask = MASK_ENGINE; diff --git a/src/gs-entbase/shared/NSTalkMonster.h b/src/gs-entbase/shared/NSTalkMonster.h index df7861f0..9a7a7cc2 100644 --- a/src/gs-entbase/shared/NSTalkMonster.h +++ b/src/gs-entbase/shared/NSTalkMonster.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* NPCs are more advanced than regular monsters in that they express emotions * and are able to interact more with the environment */ diff --git a/src/gs-entbase/shared/NSTalkMonster.qc b/src/gs-entbase/shared/NSTalkMonster.qc index 7391ca5f..1be4cf09 100644 --- a/src/gs-entbase/shared/NSTalkMonster.qc +++ b/src/gs-entbase/shared/NSTalkMonster.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef SERVER void @@ -655,7 +655,6 @@ NSTalkMonster::SendEntity(entity ePEnt, float fChanged) WriteFloat(MSG_ENTITY, velocity[2]); } -#ifdef GS_RENDERFX if (fChanged & BASEFL_CHANGED_RENDERMODE) { WriteByte(MSG_ENTITY, m_iRenderMode); WriteByte(MSG_ENTITY, m_iRenderFX); @@ -669,11 +668,6 @@ NSTalkMonster::SendEntity(entity ePEnt, float fChanged) if (fChanged & BASEFL_CHANGED_RENDERAMT) { WriteFloat(MSG_ENTITY, m_flRenderAmt); } -#else - if (fChanged & BASEFL_CHANGED_ALPHA) { - WriteFloat(MSG_ENTITY, alpha); - } -#endif return (1); } @@ -860,7 +854,6 @@ NSTalkMonster::ReceiveEntity(float flNew, float flChanged) velocity[2] = readfloat(); } -#ifdef GS_RENDERFX if (flChanged & BASEFL_CHANGED_RENDERMODE) { m_iRenderMode = readbyte(); m_iRenderFX = readbyte(); @@ -873,11 +866,6 @@ NSTalkMonster::ReceiveEntity(float flNew, float flChanged) if (flChanged & BASEFL_CHANGED_RENDERAMT) { m_flRenderAmt = readfloat(); } -#else - if (flChanged & BASEFL_CHANGED_ALPHA) { - alpha = readfloat(); - } -#endif if (modelindex) { drawmask = MASK_ENGINE; diff --git a/src/gs-entbase/shared/NSTrigger.h b/src/gs-entbase/shared/NSTrigger.h index 8fea1019..03e53061 100644 --- a/src/gs-entbase/shared/NSTrigger.h +++ b/src/gs-entbase/shared/NSTrigger.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* NSTrigger class is responsible for the legacy trigger architecture. In the future, NSEntity can be configured so that legacy @@ -68,4 +68,4 @@ enum TRIG_OFF, TRIG_ON, TRIG_TOGGLE -}; \ No newline at end of file +}; diff --git a/src/gs-entbase/shared/NSTrigger.qc b/src/gs-entbase/shared/NSTrigger.qc index a0cb6933..383308cf 100644 --- a/src/gs-entbase/shared/NSTrigger.qc +++ b/src/gs-entbase/shared/NSTrigger.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef SERVER /* legacy trigger architecture */ diff --git a/src/gs-entbase/shared/NSVehicle.h b/src/gs-entbase/shared/NSVehicle.h index c125a7e5..0d7a4ace 100644 --- a/src/gs-entbase/shared/NSVehicle.h +++ b/src/gs-entbase/shared/NSVehicle.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class NSVehicle:NSSurfacePropEntity { diff --git a/src/gs-entbase/shared/NSVehicle.qc b/src/gs-entbase/shared/NSVehicle.qc index 12393cd3..f9114fd8 100644 --- a/src/gs-entbase/shared/NSVehicle.qc +++ b/src/gs-entbase/shared/NSVehicle.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ bool NSVehicle::CanDriverCrouch(void) diff --git a/src/gs-entbase/shared/ambient_generic.qc b/src/gs-entbase/shared/ambient_generic.qc index 8763bbaa..10cfb2a5 100644 --- a/src/gs-entbase/shared/ambient_generic.qc +++ b/src/gs-entbase/shared/ambient_generic.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED ambient_generic (1 1 1) (-8 -8 -8) (8 8 8) AS_ARADIUS AS_SRADIUS AS_MRADIUS AS_LRADIUS AS_SILENT AS_NOTTOGGLED Plays a sound sample of whatever format the engine is configured to support. diff --git a/src/gs-entbase/shared/baseentity.h b/src/gs-entbase/shared/baseentity.h index 7a546f3a..bbe85692 100644 --- a/src/gs-entbase/shared/baseentity.h +++ b/src/gs-entbase/shared/baseentity.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifndef BASEENTITY #define BASEENTITY @@ -28,4 +28,5 @@ #include "NSMonster.h" #include "NSTalkMonster.h" #include "NSProjectile.h" +#include "env_sprite.h" #endif diff --git a/src/gs-entbase/shared/decals.qc b/src/gs-entbase/shared/decals.qc index 772251a1..299dd7e0 100644 --- a/src/gs-entbase/shared/decals.qc +++ b/src/gs-entbase/shared/decals.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int autocvar_r_drawdecals = TRUE; var int autocvar_sp_decals = 128; diff --git a/src/gs-entbase/shared/env_bubbles.qc b/src/gs-entbase/shared/env_bubbles.qc index de41b8d1..7aa7d194 100644 --- a/src/gs-entbase/shared/env_bubbles.qc +++ b/src/gs-entbase/shared/env_bubbles.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_bubbles (1 0 0) ? BUBFL_STARTOFF Brush volume that emits rising bubbles. diff --git a/src/gs-entbase/shared/env_fog_controller.qc b/src/gs-entbase/shared/env_fog_controller.qc index 2f159a1a..f79bb17c 100644 --- a/src/gs-entbase/shared/env_fog_controller.qc +++ b/src/gs-entbase/shared/env_fog_controller.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_fog_controller (1 0 0) (-8 -8 -8) (8 8 8) EVFOGCTL_MASTER Textured light projected. This is the type of lighting that's used for @@ -66,7 +66,6 @@ enumflags class env_fog_controller:NSPointTrigger { - /* networked attributes */ PREDICTED_INT(m_iFogActive); PREDICTED_INT(m_iFogBlend); diff --git a/src/gs-entbase/shared/env_projectedtexture.qc b/src/gs-entbase/shared/env_projectedtexture.qc index 8cbb2e88..44922812 100644 --- a/src/gs-entbase/shared/env_projectedtexture.qc +++ b/src/gs-entbase/shared/env_projectedtexture.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED env_projectedtexture (1 0 0) (-8 -8 -8) (8 8 8) PRTEXSF_STARTON Textured light projected. This is the type of lighting that's used for diff --git a/src/gs-entbase/shared/env_sprite.h b/src/gs-entbase/shared/env_sprite.h new file mode 100644 index 00000000..6472c35b --- /dev/null +++ b/src/gs-entbase/shared/env_sprite.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +enumflags +{ + SPRITE_CHANGED_ORIGIN, + SPRITE_CHANGED_MODELINDEX, + SPRITE_CHANGED_FRAMERATE, + SPRITE_CHANGED_SCALE, + SPRITE_CHANGED_RENDERMODE, + SPRITE_CHANGED_RENDERFX, + SPRITE_CHANGED_RENDERCOLOR, + SPRITE_CHANGED_RENDERAMT, + SPRITE_CHANGED_MATERIAL, +}; diff --git a/src/gs-entbase/shared/env_sprite.qc b/src/gs-entbase/shared/env_sprite.qc new file mode 100644 index 00000000..525073a0 --- /dev/null +++ b/src/gs-entbase/shared/env_sprite.qc @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +/*QUAKED env_sprite (1 0 0) (-8 -8 -8) (8 8 8) ENVS_STARTON ENVS_PLAYONCE +A sprite entity manager with fancy overrides. + +-------- KEYS -------- +"targetname" : Name +"target" : Target when triggered. +"killtarget" : Target to kill when triggered. +"angles" : Sets the pitch, yaw and roll angles of the sprite. +"model" : Path to the sprite in question. +"rendercolor" : Color modifier of the sprite. +"renderamt" : Alpha modifier of the sprite. +"rendermode" : Render mode of the sprite. +"framerate" : Rate between frames in seconds. +"scale" : Scale modifier of the sprite. + +-------- SPAWNFLAGS -------- +ENVS_STARTON : Start visible. +ENVS_PLAYONCE : Play once from start to finish, then make invisible. + +-------- NOTES -------- +Only used with an external sprite format, like SPR, SPRHL and SPR32. + +-------- TRIVIA -------- +This entity was introduced in Half-Life (1998). +*/ + +enumflags +{ + ENVS_STARTON, + ENVS_PLAYONCE +}; + +class env_sprite:NSRenderableEntity +{ + bool m_iIsShader; + int m_iToggled; + float m_flEffects; + + PREDICTED_STRING(m_strMaterial); + PREDICTED_FLOAT(m_flFramerate); + +#ifdef CLIENT + int m_iMaxFrame; + bool m_bLoops; +#endif + + void(void) env_sprite; + + virtual void(bool) SetFramerate; + +#ifdef SERVER + virtual void(void) Spawned; + virtual void(entity, int) Trigger; + virtual void(void) EvaluateEntity; + virtual float(entity, float) SendEntity; + virtual void(string, string) SpawnKey; +#else + virtual float(void) predraw; + virtual void(void) think; + virtual void(float, float) ReceiveEntity; + virtual void(int) SetMaxFrame; + virtual void(bool) SetLoopFlag; +#endif +}; + +#ifdef SERVER +void +env_sprite::EvaluateEntity(void) +{ + if (ATTR_CHANGED(origin)) { + SetSendFlags(SPRITE_CHANGED_ORIGIN); + } + if (ATTR_CHANGED(modelindex)) { + SetSendFlags(SPRITE_CHANGED_MODELINDEX); + } + if (ATTR_CHANGED(m_flFramerate)) { + SetSendFlags(SPRITE_CHANGED_FRAMERATE); + } + if (ATTR_CHANGED(scale)) { + SetSendFlags(SPRITE_CHANGED_SCALE); + } + if (ATTR_CHANGED(m_iRenderMode)) { + SetSendFlags(SPRITE_CHANGED_RENDERMODE); + } + if (ATTR_CHANGED(m_vecRenderColor)) { + SetSendFlags(SPRITE_CHANGED_RENDERCOLOR); + } + if (ATTR_CHANGED(m_flRenderAmt)) { + SetSendFlags(SPRITE_CHANGED_RENDERAMT); + } + if (ATTR_CHANGED(m_strMaterial)) { + SetSendFlags(SPRITE_CHANGED_MATERIAL); + } + + SAVE_STATE(origin); + SAVE_STATE(modelindex); + SAVE_STATE(m_flFramerate); + SAVE_STATE(scale); + SAVE_STATE(m_iRenderMode); + SAVE_STATE(m_iRenderFX); + SAVE_STATE(m_vecRenderColor); + SAVE_STATE(m_flRenderAmt); + SAVE_STATE(m_strMaterial); +} + +float +env_sprite::SendEntity(entity ePEnt, float flFlags) +{ + if (clienttype(ePEnt) != CLIENTTYPE_REAL) + return (0); + + if (HasSpawnFlags(ENVS_PLAYONCE)) + return (0); + + /* Delete it on the client. */ + if (m_iToggled == FALSE) + return (0); + + WriteByte(MSG_ENTITY, ENT_SPRITE); + WriteFloat(MSG_ENTITY, flFlags); + + if (flFlags & SPRITE_CHANGED_ORIGIN) { + WriteCoord(MSG_ENTITY, origin[0]); + WriteCoord(MSG_ENTITY, origin[1]); + WriteCoord(MSG_ENTITY, origin[2]); + } + + if (flFlags & SPRITE_CHANGED_MODELINDEX) { + WriteFloat(MSG_ENTITY, modelindex); + } + if (flFlags & SPRITE_CHANGED_FRAMERATE) { + WriteFloat(MSG_ENTITY, m_flFramerate); + } + if (flFlags & SPRITE_CHANGED_SCALE) { + WriteFloat(MSG_ENTITY, scale); + } + if (flFlags & SPRITE_CHANGED_RENDERMODE) { + WriteByte(MSG_ENTITY, m_iRenderMode); + } + if (flFlags & SPRITE_CHANGED_RENDERFX) { + WriteByte(MSG_ENTITY, m_iRenderFX); + } + if (flFlags & SPRITE_CHANGED_RENDERCOLOR) { + WriteFloat(MSG_ENTITY, m_vecRenderColor[0]); + WriteFloat(MSG_ENTITY, m_vecRenderColor[1]); + WriteFloat(MSG_ENTITY, m_vecRenderColor[2]); + } + if (flFlags & SPRITE_CHANGED_RENDERAMT) { + WriteFloat(MSG_ENTITY, m_flRenderAmt); + } + if (flFlags & SPRITE_CHANGED_MATERIAL) { + WriteString(MSG_ENTITY, m_strMaterial); + } + + return (1); +} + +void +env_sprite::NetworkOnce(void) +{ + WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); + WriteByte(MSG_MULTICAST, EV_SPRITE); + WriteCoord(MSG_MULTICAST, origin[0]); + WriteCoord(MSG_MULTICAST, origin[1]); + WriteCoord(MSG_MULTICAST, origin[2]); + WriteFloat(MSG_MULTICAST, modelindex); + WriteFloat(MSG_MULTICAST, m_flFramerate); + WriteFloat(MSG_MULTICAST, scale); + WriteByte(MSG_MULTICAST, m_iRenderMode); + WriteByte(MSG_MULTICAST, m_iRenderFX); + WriteFloat(MSG_MULTICAST, m_vecRenderColor[0]); + WriteFloat(MSG_MULTICAST, m_vecRenderColor[1]); + WriteFloat(MSG_MULTICAST, m_vecRenderColor[2]); + WriteFloat(MSG_MULTICAST, m_flRenderAmt); + WriteString(MSG_MULTICAST, m_strMaterial); + + msg_entity = this; + multicast(origin, MULTICAST_PVS); +} + +/* TODO: Implement state */ +void +env_sprite::Trigger(entity act, int state) +{ + if (HasSpawnFlags(ENVS_PLAYONCE)) { + NetworkOnce(); + } else { + m_iToggled = 1 - m_iToggled; + SendFlags = 1; + } +} + +void +env_sprite::SpawnKey(string strKey, string strValue) +{ + switch (strKey) { + case "shader": + case "material": + m_strMaterial = strValue; + break; + case "framerate": + m_flFramerate = stof(strValue); + break; + default: + super::SpawnKey(strKey, strValue); + } +} + +void +env_sprite::Spawned(void) +{ + super::Spawned(); + + m_iToggled = (HasSpawnFlags(ENVS_STARTON) > 0) ? TRUE : FALSE; + + /* how pointless this would be otherwise. */ + if (!targetname) + m_iToggled = TRUE; +} +#else +float +env_sprite::predraw(void) +{ + if (m_strMaterial == __NULL__) { + return super::predraw(); + } + + int s = (float)getproperty(VF_ACTIVESEAT); + pSeat = &g_seats[s]; + vector vecPlayer = pSeat->m_vecPredictedOrigin; + makevectors(view_angles); + makevectors(vectoangles(origin - vecPlayer)); + vector forg = origin + (v_forward * -16); + vector fsize = [64,64]; + + traceline(origin, vecPlayer, MOVE_WORLDONLY, this); + + if (trace_fraction < 1.0) + return (PREDRAW_NEXT); + + R_BeginPolygon(m_strMaterial, 1, 0); + R_PolygonVertex(forg + v_right * fsize[0] - v_up * fsize[1], + [1,1], m_vecRenderColor, 1.0); + R_PolygonVertex(forg - v_right * fsize[0] - v_up * fsize[1], + [0,1], m_vecRenderColor, 1.0); + R_PolygonVertex(forg - v_right * fsize[0] + v_up * fsize[1], + [0,0], m_vecRenderColor, 1.0); + R_PolygonVertex(forg + v_right * fsize[0] + v_up * fsize[1], + [1,0], m_vecRenderColor, 1.0); + R_EndPolygon(); + + addentity(this); + + return (PREDRAW_NEXT); +} + +void +env_sprite::think(void) +{ + if (frame >= (m_iMaxFrame-1)) { + if (m_bLoops == 0) { + Destroy(); + return; + } else { + frame = 0; + } + } else { + frame += 1; + } + + nextthink = time + (1 / m_flFramerate); +} + +void +env_sprite::ReceiveEntity(float flNew, float flFlags) +{ + if (flFlags & SPRITE_CHANGED_ORIGIN) { + origin[0] = readcoord(); + origin[1] = readcoord(); + origin[2] = readcoord(); + } + if (flFlags & SPRITE_CHANGED_MODELINDEX) { + modelindex = readfloat(); + } + if (flFlags & SPRITE_CHANGED_FRAMERATE) { + m_flFramerate = readfloat(); + } + if (flFlags & SPRITE_CHANGED_SCALE) { + scale = readfloat(); + } + if (flFlags & SPRITE_CHANGED_RENDERMODE) { + m_iRenderMode = readbyte(); + } + if (flFlags & SPRITE_CHANGED_RENDERFX) { + m_iRenderFX = readbyte(); + } + if (flFlags & SPRITE_CHANGED_RENDERCOLOR) { + m_vecRenderColor[0] = readfloat(); + m_vecRenderColor[1] = readfloat(); + m_vecRenderColor[2] = readfloat(); + } + if (flFlags & SPRITE_CHANGED_RENDERAMT) { + m_flRenderAmt = readfloat(); + } + if (flFlags & SPRITE_CHANGED_MATERIAL) { + m_strMaterial = readstring(); + } + + drawmask = MASK_ENGINE; + nextthink = time + (1 / m_flFramerate); + m_iMaxFrame = modelframecount(modelindex); + m_bLoops = 1; /* repeats */ + setorigin(this, origin); +} + +void +env_sprite::SetMaxFrame(int fr) +{ + m_iMaxFrame = fr; +} + +void +env_sprite::SetLoopFlag(bool loops) +{ + m_bLoops = loops; +} +#endif + + +void +env_sprite::SetFramerate(bool flag) +{ + +} + +void +env_sprite::env_sprite(void) +{ + m_iIsShader = false; + m_flFramerate = 10; + m_strMaterial = __NULL__; + scale = 1.0f; +} + +#ifdef CLIENT +void +EnvSprite_ParseEvent(void) +{ + env_sprite spr = spawn(env_sprite); + spr.origin[0] = readcoord(); + spr.origin[1] = readcoord(); + spr.origin[2] = readcoord(); + spr.modelindex = readfloat(); + spr.m_flFramerate = readfloat(); + spr.scale = readfloat(); + spr.m_iRenderMode = readbyte(); + spr.m_iRenderFX = readbyte(); + spr.m_vecRenderColor[0] = readfloat(); + spr.m_vecRenderColor[1] = readfloat(); + spr.m_vecRenderColor[2] = readfloat(); + spr.m_flRenderAmt = readfloat(); + spr.m_strMaterial = readstring(); + + spr.drawmask = MASK_ENGINE; + spr.nextthink = time + (1 / spr.m_flFramerate); + spr.m_iMaxFrame = modelframecount(spr.modelindex); + spr.m_bLoops = 0; /* does not repeat */ + setorigin(spr, spr.origin); +} +#endif diff --git a/src/gs-entbase/shared/func_friction.qc b/src/gs-entbase/shared/func_friction.qc index b99cba18..c10e3612 100644 --- a/src/gs-entbase/shared/func_friction.qc +++ b/src/gs-entbase/shared/func_friction.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_friction (0 .5 .8) ? Volume that permanently adds a modifier that affects an entities' friction. diff --git a/src/gs-entbase/shared/func_illusionary.qc b/src/gs-entbase/shared/func_illusionary.qc index f18da357..ed20df5e 100644 --- a/src/gs-entbase/shared/func_illusionary.qc +++ b/src/gs-entbase/shared/func_illusionary.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_illusionary (0 .5 .8) ? Brush that lets light to pass through it and is non-solid. diff --git a/src/gs-entbase/shared/func_ladder.qc b/src/gs-entbase/shared/func_ladder.qc index b8838cd0..3731747c 100644 --- a/src/gs-entbase/shared/func_ladder.qc +++ b/src/gs-entbase/shared/func_ladder.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_ladder (0 .5 .8) ? Ladder volume. Climb up ladders with this one simple brush. @@ -29,29 +29,14 @@ func_ladder:NSRenderableEntity { void(void) func_ladder; -#ifdef SERVER virtual void(void) Respawn; - virtual float(entity, float) SendEntity; + +#ifdef SERVER virtual void(entity, int) Trigger; -#else - virtual float() predraw; - virtual void(void) Init; #endif }; #ifdef SERVER -/* we're overriding SendEntity so that we don't network func_walls - * without a targetname. They'll never experience gameplay changes - * and therefore can be handled fully client-side */ -float -func_ladder::SendEntity(entity pvsent, float fl) -{ - if (targetname) - return super::SendEntity(pvsent, fl); - else - return (0); -} - void func_ladder::Trigger(entity act, int state) { @@ -66,13 +51,11 @@ func_ladder::Trigger(entity act, int state) SetFrame(1 - frame); } } +#endif void func_ladder::Respawn(void) { - /* reset the visual parameters */ - super::Respawn(); - /* func_ladder specifics */ SetMovetype(MOVETYPE_NONE); SetSolid(SOLID_BSP); @@ -80,51 +63,8 @@ func_ladder::Respawn(void) SetModel(GetSpawnModel()); SetOrigin(GetSpawnOrigin()); SetFrame(0); - ClearAngles(); - -#ifdef GS_RENDERFX SetRenderMode(RM_TRIGGER); -#endif } -#else -float -func_ladder::predraw(void) -{ - vector vecPlayer; - - int s = (float)getproperty(VF_ACTIVESEAT); - pSeat = &g_seats[s]; - vecPlayer = pSeat->m_vecPredictedOrigin; - - if (checkpvs(vecPlayer, this) == FALSE) { - return (PREDRAW_NEXT); - } - - super::predraw(); - addentity(self); - return (PREDRAW_NEXT); -} - -void -func_ladder::Init(void) -{ - super::Init(); - - /* this entity is being controlled by the server, remove it */ - if (targetname) { - Destroy(); - return; - } - - precache_model(model); - setmodel(this, model); - setorigin(this, origin); - movetype = MOVETYPE_NONE; - solid = SOLID_BSP; - skin = CONTENT_LADDER; - angles = [0,0,0]; -} -#endif void func_ladder::func_ladder(void) diff --git a/src/gs-entbase/shared/func_monitor.qc b/src/gs-entbase/shared/func_monitor.qc index 527bb4d3..3ce5a113 100644 --- a/src/gs-entbase/shared/func_monitor.qc +++ b/src/gs-entbase/shared/func_monitor.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_monitor (0 .5 .8) ? A monitor that renders the view of a linked point_camera entity. diff --git a/src/gs-entbase/shared/func_tankmortar.qc b/src/gs-entbase/shared/func_tankmortar.qc index 34f079d6..d8a67d87 100644 --- a/src/gs-entbase/shared/func_tankmortar.qc +++ b/src/gs-entbase/shared/func_tankmortar.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_tankmortar (0 .5 .8) ? A mountable tank mortar turret type entity. A player (or NPC) can interact with diff --git a/src/gs-entbase/shared/func_wall.qc b/src/gs-entbase/shared/func_wall.qc index 93602660..12cbaca1 100644 --- a/src/gs-entbase/shared/func_wall.qc +++ b/src/gs-entbase/shared/func_wall.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED func_wall (0 .5 .8) ? Brush that lets light to pass through it. diff --git a/src/gs-entbase/shared/info_particle_system.qc b/src/gs-entbase/shared/info_particle_system.qc index bfbfa009..29682c9b 100644 --- a/src/gs-entbase/shared/info_particle_system.qc +++ b/src/gs-entbase/shared/info_particle_system.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED info_particle_system (1 0 0) (-8 -8 -8) (8 8 8) PSFL_STARTACTIVE An entity that's spawns particles from the engine's particle system. diff --git a/src/gs-entbase/shared/light_dynamic.qc b/src/gs-entbase/shared/light_dynamic.qc index 3953af3b..f9ecd6c6 100644 --- a/src/gs-entbase/shared/light_dynamic.qc +++ b/src/gs-entbase/shared/light_dynamic.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED light_dynamic (1 0 0) (-8 -8 -8) (8 8 8) Dynamic light entity. Can be parented to things, it even has some inputs that @@ -223,7 +223,7 @@ light_dynamic::RendererRestarted(void) { OnRemoveEntity(); m_light = dynamiclight_spawnstatic(origin, m_flDistance, m_vecLight); - LightChanged(0xFFFFFFFF); + LightChanged(0xFFFFFF); } #else void diff --git a/src/gs-entbase/shared/prop_physics_multiplayer.qc b/src/gs-entbase/shared/prop_physics_multiplayer.qc index fdc35383..86e01b16 100644 --- a/src/gs-entbase/shared/prop_physics_multiplayer.qc +++ b/src/gs-entbase/shared/prop_physics_multiplayer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED prop_physics_multiplayer (0 0 0.8) (-16 -16 -16) (16 16 16) PRPPHYS_ASLEEP Physics prop that is optimised for netplay. diff --git a/src/gs-entbase/shared/prop_rope.qc b/src/gs-entbase/shared/prop_rope.qc index 368a0196..1f1787bd 100644 --- a/src/gs-entbase/shared/prop_rope.qc +++ b/src/gs-entbase/shared/prop_rope.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED prop_rope (1 1 0.5) (-8 -8 -8) (8 8 8) ROPE_VERTICAL Client-side decorative rope entity. diff --git a/src/gs-entbase/shared/prop_vehicle_driveable.qc b/src/gs-entbase/shared/prop_vehicle_driveable.qc index 34d2adb6..7e9f5537 100644 --- a/src/gs-entbase/shared/prop_vehicle_driveable.qc +++ b/src/gs-entbase/shared/prop_vehicle_driveable.qc @@ -1,919 +1,919 @@ -/* - * Copyright (c) 2016-2020 Marco Cawthorne - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING - * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/*QUAKED prop_vehicle_driveable (0 0 1) (-50 -50 0) (50 50 70) -Point entity defining a 4-wheel vehicle that you can drive. - --------- KEYS -------- -"targetname" : Name - --------- SPAWNFLAGS -------- - - --------- NOTES -------- - - --------- TRIVIA -------- -This entity was introduced in Half-Life 2 (2004). -*/ - -#define VEH_SKIDDING FL_USE_RELEASED - -#define VEHSF_NOFLIP 2048 - -enumflags -{ - VEHFL_DRIVER, - VEHFL_MODELINDEX, - VEHFL_ORIGIN, - VEHFL_ANGLES, - VEHFL_VELOCITY, - VEHFL_TURNING, - VEHFL_FLAGS -}; - -class prop_vehicle_driveable_wheel -{ - void() prop_vehicle_driveable_wheel; - float m_flSuspension; - float m_flSuspensionForce; - -#ifdef CLIENT - - vector origin_net; - vector velocity_net; - vector angles_net; - virtual void(void) PredictPreFrame; - virtual void(void) PredictPostFrame; -#endif - - virtual void(float) UpdateSuspension; - virtual void(float) Move; - virtual void(vector) Bounce; - virtual void(float, float m_flTurn) Accel; - virtual void(float, float) Physics; -}; - -class prop_vehicle_driveable:NSVehicle -{ - /* map-entity fields */ - float m_flBounceFactor; - float m_flAcceleration; - float m_flSkidSpeed; - float m_flTraction; - float m_flBreakFactor; - float m_flSteerFactor; - float m_flStraightenFactor; - vector m_vecGravityDir; - float m_flTimeLength; - vector m_vecSeatOffest; - - /* collision boxes */ - NSEntity m_eCollBox1; - NSEntity m_eCollBox2; - - prop_vehicle_driveable_wheel m_wlFL; - prop_vehicle_driveable_wheel m_wlFR; - prop_vehicle_driveable_wheel m_wlBL; - prop_vehicle_driveable_wheel m_wlBR; - vector m_vecControlMins; - vector m_vecControlMaxs; - PREDICTED_FLOAT(m_flTurn); - - float m_flBRWheelAxel; - float m_flBLWheelAxel; - float m_flFLWheelAxel; - float m_flFRWheelAxel; - - float m_flUseTime; - - void(void) prop_vehicle_driveable; - - virtual void(void) Spawned; - virtual void(void) Physics; - virtual void(void) RunVehiclePhysics; - virtual void(void) WeaponInput; - virtual void(void) PlayerInput; - virtual void(void) OnRemoveEntity; - -#ifdef CLIENT - virtual bool(void) HideViewWeapon; - virtual void(void) PredictPreFrame; - virtual void(void) PredictPostFrame; - virtual void(float, float) ReceiveEntity; - virtual void(void) UpdateView; -#else - virtual void(void) Respawn; - virtual void(void) OnPlayerUse; - virtual void(void) EvaluateEntity; - virtual float(entity, float) SendEntity; -#endif -}; - -#ifdef CLIENT -bool -prop_vehicle_driveable::HideViewWeapon(void) -{ - return true; -} -#endif - -void -prop_vehicle_driveable::Physics(void) -{ -#ifdef CLIENT - DriverRelink(); -#endif - - /* if nobody is in the car, we need to run physics here - * with fake input frames */ - if (GetDriver() == __NULL__) { -#ifdef SERVER - m_flTimeLength = frametime; - m_vecMoveValues = [0,0,0]; - m_iMoveButtons = 0; - RunVehiclePhysics(); -#else - setorigin(this, origin); -#endif - } else { - //crossprint(sprintf("Driver: %s\n", GetDriver().classname)); - } - -#ifdef SERVER - /* support for think/nextthink */ - if (think && nextthink > 0.0f) { - if (nextthink < time) { - nextthink = 0.0f; - think(); - } - } -#endif -} - -void -prop_vehicle_driveable::OnRemoveEntity(void) -{ - remove(m_wlFL); - remove(m_wlFR); - remove(m_wlBL); - remove(m_wlBR); - remove(m_eCollBox1); - remove(m_eCollBox2); -} - -#ifdef CLIENT -void -prop_vehicle_driveable::UpdateView(void) -{ - vector vecStart, vecEnd; - - pSeat->m_vecPredictedOrigin = origin; - makevectors(view_angles); - vecStart = [pSeat->m_vecPredictedOrigin[0], pSeat->m_vecPredictedOrigin[1], pSeat->m_vecPredictedOrigin[2] + 16] + (v_right * 4); - vecEnd = vecStart + (v_forward * -256) + [0,0,16] + (v_right * 4); - other = world; - traceline(vecStart, vecEnd, MOVE_OTHERONLY, this); - setproperty(VF_ORIGIN, trace_endpos + (v_forward * 16)); -} - -void -prop_vehicle_driveable_wheel::PredictPreFrame(void) -{ - SAVE_STATE(angles); - SAVE_STATE(origin); - SAVE_STATE(velocity); -} - -void -prop_vehicle_driveable_wheel::PredictPostFrame(void) -{ - ROLL_BACK(angles); - ROLL_BACK(origin); - ROLL_BACK(velocity); -} -#endif - -void -prop_vehicle_driveable_wheel::Bounce(vector normal) -{ - prop_vehicle_driveable vehParent; - vehParent = (prop_vehicle_driveable)owner; - - vector vecBounce = (velocity * normal) * normal * vehParent.m_flBounceFactor; - velocity -= vecBounce; - vehParent.velocity = velocity; - -#ifdef SERVER - float flStregth = vlen((velocity * normal) * normal); - - if (flStregth > 96) { - Sound_Play(vehParent, CHAN_VOICE, "prop_vehicle_driveable.bounce"); - } -#endif -} - -void -prop_vehicle_driveable_wheel::Move(float flTimeLength) -{ - vector vecDest; - vector vecSavedNormal; - float flStepped; - float flMovetime; - int i; - - /* have a few attempts */ - for (i = 3, flMovetime = flTimeLength; flMovetime > 0 && i; i--) { - vecDest = origin + (velocity * flMovetime); - tracebox(origin, mins, maxs, vecDest, MOVE_NOMONSTERS, this); - - if (trace_startsolid) { - continue; - } - - origin = trace_endpos; - - if (trace_fraction < 1) { - vecSavedNormal = trace_plane_normal; - flMovetime -= flMovetime * trace_fraction; - - if (flMovetime) { - float roof_fraction; - vector roof_plane_normal; - - /* step up if we can */ - trace_endpos = origin; - trace_endpos[2] += 8; - - tracebox(origin, mins, maxs, trace_endpos, MOVE_NOMONSTERS, this); - flStepped = trace_endpos[2] - origin[2]; - - roof_fraction = trace_fraction; - roof_plane_normal = trace_plane_normal; - - vecDest = trace_endpos + velocity * flMovetime; - - /* only horizontally */ - vecDest[2] = trace_endpos[2]; - - /* move forwards */ - tracebox(trace_endpos, mins, maxs, vecDest, MOVE_NOMONSTERS, this); - - /* if we got anywhere, make this raised-step move count */ - if (trace_fraction != 0) { - float fwfrac; - vector fwplane; - - fwfrac = trace_fraction; - fwplane = trace_plane_normal; - - /* move down */ - vecDest = trace_endpos; - vecDest[2] -= flStepped + 1; - tracebox(trace_endpos, mins, maxs, vecDest, MOVE_NOMONSTERS, this); - - if (trace_fraction < 1 && trace_plane_normal[2] > 0.7f) { - flMovetime -= flMovetime * fwfrac; - - if (roof_fraction < 1) { - Bounce(roof_plane_normal); - } - - /* FIXME: do we need velocity < 0? */ - if (trace_fraction < 1) { - Bounce(trace_plane_normal); - } else if (fwfrac < 1) { - Bounce(fwplane); - } - - origin = trace_endpos; - continue; - } - } - } - - /* stepping failed, assume crash? */ - if (trace_ent == world) { - if (vlen(velocity) > 300) { - float impact; - impact = -dotproduct(trace_plane_normal, velocity); - int iImpactDamage = impact / 100; - } - } - - Bounce(vecSavedNormal); - /* Physics_DoTouch(this, trace_ent); */ - } else { - break; - } - } -} - -void -prop_vehicle_driveable_wheel::Accel(float flMoveTime, float m_flTurn) -{ - prop_vehicle_driveable vehParent; - entity eDriver; - float flTraction; - vector vecAngle; - - vehParent = (prop_vehicle_driveable)owner; - eDriver = vehParent.m_eDriver; - vecAngle = vehParent.angles; - - makevectors(vecAngle); - - if (m_flTurn) { - /* cripple turnrate by our current velocity */ - float turnbreak = bound(0, vlen(velocity), 100) * 0.5; - - /* rotates v_forward */ - rotatevectorsbyangle([ 0, m_flTurn * turnbreak, 0]); - } - - tracebox(origin, mins, maxs, origin - v_up, MOVE_NOMONSTERS, owner); - - /* allow a range, for 1qu's worth of spare tyre pressure. or something */ - flTraction = 1 - trace_fraction; - - /* air friction, doubles up for general rolling friction, ish */ - velocity *= 1 - flMoveTime * 0.1; - - if (flTraction) { - if (eDriver) { - velocity += v_forward * bound(-1, vehParent.m_vecMoveValues[0] / 400, 1) * vehParent.m_flAcceleration * flMoveTime * flTraction; - } - - /* test if this car is skidding */ - float skid = (velocity * v_right); - if ( fabs(skid) > vehParent.m_flSkidSpeed ) { - vehParent.flags |= VEH_SKIDDING; - } - - /* nuke sideways velocity. if a wheel is off the ground this probably - means that it'll be pushed further. players should try not to roll - too much. */ - /* FIXME: push opposite wheel up slightly to model chassis momentum - not slowing as much as the wheel itself (zomg: race conditions!) */ - velocity -= (velocity * v_right) * v_right * vehParent.m_flTraction * flMoveTime * flTraction; - - if (!eDriver || (vehParent.m_iMoveButtons & INPUT_BUTTON2 || vehParent.m_vecMoveValues[2] > 0)) { - vector t; - - /* empty cars are assumed to have their brakes on. - nuke forward velocity. if a wheel is off the ground this probably - means that it'll be pushed further. players should try not to - roll too much. - - Note: really we ought to be applying some axel friction even - when not breaking, but we'll just depend on air friction for - that. */ - velocity -= (velocity * v_forward) * v_forward * vehParent.m_flBreakFactor * flMoveTime * flTraction; - - /* if break is on, nuke the final part of the velocity, so we can - become truely motionless.*/ - t = velocity - velocity * dotproduct(velocity, vehParent.m_vecGravityDir); - if (vlen(t) < 15) { - velocity -= t; - } - - /* don't bother with gravity if we're already on the ground and - breaking. this avoids weird slides. */ - if (!trace_fraction && trace_plane_normal * vehParent.m_vecGravityDir < -0.7f) { - return; - } - } - } - - /* apply gravity */ - velocity += vehParent.m_vecGravityDir * flMoveTime * serverkeyfloat("phy_gravity") * trace_fraction; - - tracebox(origin, mins * 4.0, maxs * 4.0, origin, MOVE_NORMAL, owner); - if (trace_ent && trace_ent != vehParent.m_eDriver) { - int iImpactDamage = vlen(velocity) / 10; - - if (iImpactDamage > 10) { - trace_ent.velocity = velocity * 2.0 + [0,0,500]; - velocity *= 0.25f; -#ifdef SERVER - if (trace_ent.takedamage) { - NSSurfacePropEntity foo = (NSSurfacePropEntity)trace_ent; - Damage_Apply(foo, vehParent.m_eDriver, iImpactDamage, 0, DMG_VEHICLE); - //print(sprintf("Delivering %i impact damage\n", iImpactDamage)); - } -#endif - } - } -} - -void -prop_vehicle_driveable_wheel::UpdateSuspension(float flTimeLength) -{ - float flDamp; - float flForce; - - if (fabs(m_flSuspension) > 0.001 || fabs(m_flSuspensionForce) > 0.001) { - m_flSuspension += m_flSuspensionForce * flTimeLength; - - flForce = bound(0, flTimeLength * 65, 2); - flDamp = 1 - (flTimeLength * 4); - if (flDamp < 0) { - flDamp = 0; - } - m_flSuspensionForce *= flDamp; - m_flSuspensionForce -= m_flSuspension * flForce; - m_flSuspension = bound(-15, m_flSuspension, 15); - } -} - -void -prop_vehicle_driveable_wheel::Physics(float turnrate, float flTimeLength) -{ - vector owner_pos; - - /* try to correct the wheel's position, in case it got stuck */ - owner_pos = owner.origin + (owner.mins + owner.maxs) * 0.5f; - tracebox(owner_pos, mins, maxs, origin, MOVE_NORMAL, owner); - setorigin(this, trace_endpos); - - /* see if we're in-air */ - other = world; - tracebox(origin, mins, maxs, origin - [0,0,1], MOVE_OTHERONLY, this); - if (!trace_startsolid) { - if ((trace_fraction < 1) && (trace_plane_normal[2] > 0.7)) { - flags |= FL_ONGROUND; - } else { - flags &= ~FL_ONGROUND; - m_flSuspensionForce += flTimeLength * 200.0; - } - } - - Accel(flTimeLength / 2, turnrate); - Move(flTimeLength); - Accel(flTimeLength / 2, turnrate); - UpdateSuspension(flTimeLength); - //print(sprintf("suspension: %d, force: %d\n", m_flSuspension, m_flSuspensionForce)); -} - -void -prop_vehicle_driveable_wheel::prop_vehicle_driveable_wheel(void) -{ - mins = [-8,-8,-35]; - maxs = [8,8,8]; - hitcontentsmaski = CONTENTBIT_BODY | CONTENTBITS_POINTSOLID | CONTENTBIT_VEHICLECLIP; -} - -#ifdef CLIENT -void -prop_vehicle_driveable::PredictPreFrame(void) -{ - SAVE_STATE(modelindex); - SAVE_STATE(origin); - SAVE_STATE(angles); - SAVE_STATE(velocity); - SAVE_STATE(m_flTurn); - SAVE_STATE(flags); - SAVE_STATE(driver_entnum); - - m_wlFL.PredictPreFrame(); - m_wlFR.PredictPreFrame(); - m_wlBL.PredictPreFrame(); - m_wlBR.PredictPreFrame(); -} - -void -prop_vehicle_driveable::PredictPostFrame(void) -{ - ROLL_BACK(modelindex); - ROLL_BACK(angles); - ROLL_BACK(origin); - ROLL_BACK(velocity); - ROLL_BACK(m_flTurn); - ROLL_BACK(flags); - ROLL_BACK(driver_entnum); - - m_wlFL.PredictPostFrame(); - m_wlFR.PredictPostFrame(); - m_wlBL.PredictPostFrame(); - m_wlBR.PredictPostFrame(); -} -#endif - -void -prop_vehicle_driveable::WeaponInput(void) -{ - -} - -void -prop_vehicle_driveable::PlayerInput(void) -{ - m_vecMoveValues = input_movevalues; - m_iMoveButtons = input_buttons; - m_flTimeLength = input_timelength; - - /* prediction frame... */ - RunVehiclePhysics(); - -#ifdef SERVER - /* allow us to exit */ - if (m_flUseTime < time) { - if (input_buttons & INPUT_BUTTON5) { - eActivator = m_eDriver; - OnPlayerUse(); - input_buttons &= ~INPUT_BUTTON5; - } - } -#endif - - WeaponInput(); - - /* only allow use key */ - input_buttons = (input_buttons & INPUT_BUTTON5); -} - -void -prop_vehicle_driveable::RunVehiclePhysics(void) -{ -#if SERVER - /* eject the dead */ - if (m_eDriver && m_eDriver.health <= 0) { - PlayerLeave((NSClientPlayer)m_eDriver); - } -#endif - - if (m_eDriver) { - float y; - - y = m_vecMoveValues[1]; - y = bound(-200, y, 200) / 200; - y *= m_flSteerFactor; - - if (y) { - if (y < 0 && m_flTurn < 0) { - m_flTurn = 0.0f; - } else if (y > 0 && m_flTurn > 0) { - m_flTurn = 0.0f; - } else { - m_flTurn = bound(-1, m_flTurn - y * m_flTimeLength, 1); - } - } else { - /* straighten wheels forward over time */ - if (m_flTurn < 0) { - m_flTurn = min(0, m_flTurn + m_flTimeLength * m_flStraightenFactor); - } else if (m_flTurn > 0) { - m_flTurn = max(0, m_flTurn - m_flTimeLength * m_flStraightenFactor); - } - } - - PlayerUpdateFlags(); - } - - if (spawnflags & VEHSF_NOFLIP) { +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +/*QUAKED prop_vehicle_driveable (0 0 1) (-50 -50 0) (50 50 70) +Point entity defining a 4-wheel vehicle that you can drive. + +-------- KEYS -------- +"targetname" : Name + +-------- SPAWNFLAGS -------- + + +-------- NOTES -------- + + +-------- TRIVIA -------- +This entity was introduced in Half-Life 2 (2004). +*/ + +#define VEH_SKIDDING FL_USE_RELEASED + +#define VEHSF_NOFLIP 2048 + +enumflags +{ + VEHFL_DRIVER, + VEHFL_MODELINDEX, + VEHFL_ORIGIN, + VEHFL_ANGLES, + VEHFL_VELOCITY, + VEHFL_TURNING, + VEHFL_FLAGS +}; + +class prop_vehicle_driveable_wheel +{ + void() prop_vehicle_driveable_wheel; + float m_flSuspension; + float m_flSuspensionForce; + +#ifdef CLIENT + + vector origin_net; + vector velocity_net; + vector angles_net; + virtual void(void) PredictPreFrame; + virtual void(void) PredictPostFrame; +#endif + + virtual void(float) UpdateSuspension; + virtual void(float) Move; + virtual void(vector) Bounce; + virtual void(float, float m_flTurn) Accel; + virtual void(float, float) Physics; +}; + +class prop_vehicle_driveable:NSVehicle +{ + /* map-entity fields */ + float m_flBounceFactor; + float m_flAcceleration; + float m_flSkidSpeed; + float m_flTraction; + float m_flBreakFactor; + float m_flSteerFactor; + float m_flStraightenFactor; + vector m_vecGravityDir; + float m_flTimeLength; + vector m_vecSeatOffest; + + /* collision boxes */ + NSEntity m_eCollBox1; + NSEntity m_eCollBox2; + + prop_vehicle_driveable_wheel m_wlFL; + prop_vehicle_driveable_wheel m_wlFR; + prop_vehicle_driveable_wheel m_wlBL; + prop_vehicle_driveable_wheel m_wlBR; + vector m_vecControlMins; + vector m_vecControlMaxs; + PREDICTED_FLOAT(m_flTurn); + + float m_flBRWheelAxel; + float m_flBLWheelAxel; + float m_flFLWheelAxel; + float m_flFRWheelAxel; + + float m_flUseTime; + + void(void) prop_vehicle_driveable; + + virtual void(void) Spawned; + virtual void(void) Physics; + virtual void(void) RunVehiclePhysics; + virtual void(void) WeaponInput; + virtual void(void) PlayerInput; + virtual void(void) OnRemoveEntity; + +#ifdef CLIENT + virtual bool(void) HideViewWeapon; + virtual void(void) PredictPreFrame; + virtual void(void) PredictPostFrame; + virtual void(float, float) ReceiveEntity; + virtual void(void) UpdateView; +#else + virtual void(void) Respawn; + virtual void(void) OnPlayerUse; + virtual void(void) EvaluateEntity; + virtual float(entity, float) SendEntity; +#endif +}; + +#ifdef CLIENT +bool +prop_vehicle_driveable::HideViewWeapon(void) +{ + return true; +} +#endif + +void +prop_vehicle_driveable::Physics(void) +{ +#ifdef CLIENT + DriverRelink(); +#endif + + /* if nobody is in the car, we need to run physics here + * with fake input frames */ + if (GetDriver() == __NULL__) { +#ifdef SERVER + m_flTimeLength = frametime; + m_vecMoveValues = [0,0,0]; + m_iMoveButtons = 0; + RunVehiclePhysics(); +#else + setorigin(this, origin); +#endif + } else { + //crossprint(sprintf("Driver: %s\n", GetDriver().classname)); + } + +#ifdef SERVER + /* support for think/nextthink */ + if (think && nextthink > 0.0f) { + if (nextthink < time) { + nextthink = 0.0f; + think(); + } + } +#endif +} + +void +prop_vehicle_driveable::OnRemoveEntity(void) +{ + remove(m_wlFL); + remove(m_wlFR); + remove(m_wlBL); + remove(m_wlBR); + remove(m_eCollBox1); + remove(m_eCollBox2); +} + +#ifdef CLIENT +void +prop_vehicle_driveable::UpdateView(void) +{ + vector vecStart, vecEnd; + + pSeat->m_vecPredictedOrigin = origin; + makevectors(view_angles); + vecStart = [pSeat->m_vecPredictedOrigin[0], pSeat->m_vecPredictedOrigin[1], pSeat->m_vecPredictedOrigin[2] + 16] + (v_right * 4); + vecEnd = vecStart + (v_forward * -256) + [0,0,16] + (v_right * 4); + other = world; + traceline(vecStart, vecEnd, MOVE_OTHERONLY, this); + setproperty(VF_ORIGIN, trace_endpos + (v_forward * 16)); +} + +void +prop_vehicle_driveable_wheel::PredictPreFrame(void) +{ + SAVE_STATE(angles); + SAVE_STATE(origin); + SAVE_STATE(velocity); +} + +void +prop_vehicle_driveable_wheel::PredictPostFrame(void) +{ + ROLL_BACK(angles); + ROLL_BACK(origin); + ROLL_BACK(velocity); +} +#endif + +void +prop_vehicle_driveable_wheel::Bounce(vector normal) +{ + prop_vehicle_driveable vehParent; + vehParent = (prop_vehicle_driveable)owner; + + vector vecBounce = (velocity * normal) * normal * vehParent.m_flBounceFactor; + velocity -= vecBounce; + vehParent.velocity = velocity; + +#ifdef SERVER + float flStregth = vlen((velocity * normal) * normal); + + if (flStregth > 96) { + Sound_Play(vehParent, CHAN_VOICE, "prop_vehicle_driveable.bounce"); + } +#endif +} + +void +prop_vehicle_driveable_wheel::Move(float flTimeLength) +{ + vector vecDest; + vector vecSavedNormal; + float flStepped; + float flMovetime; + int i; + + /* have a few attempts */ + for (i = 3, flMovetime = flTimeLength; flMovetime > 0 && i; i--) { + vecDest = origin + (velocity * flMovetime); + tracebox(origin, mins, maxs, vecDest, MOVE_NOMONSTERS, this); + + if (trace_startsolid) { + continue; + } + + origin = trace_endpos; + + if (trace_fraction < 1) { + vecSavedNormal = trace_plane_normal; + flMovetime -= flMovetime * trace_fraction; + + if (flMovetime) { + float roof_fraction; + vector roof_plane_normal; + + /* step up if we can */ + trace_endpos = origin; + trace_endpos[2] += 8; + + tracebox(origin, mins, maxs, trace_endpos, MOVE_NOMONSTERS, this); + flStepped = trace_endpos[2] - origin[2]; + + roof_fraction = trace_fraction; + roof_plane_normal = trace_plane_normal; + + vecDest = trace_endpos + velocity * flMovetime; + + /* only horizontally */ + vecDest[2] = trace_endpos[2]; + + /* move forwards */ + tracebox(trace_endpos, mins, maxs, vecDest, MOVE_NOMONSTERS, this); + + /* if we got anywhere, make this raised-step move count */ + if (trace_fraction != 0) { + float fwfrac; + vector fwplane; + + fwfrac = trace_fraction; + fwplane = trace_plane_normal; + + /* move down */ + vecDest = trace_endpos; + vecDest[2] -= flStepped + 1; + tracebox(trace_endpos, mins, maxs, vecDest, MOVE_NOMONSTERS, this); + + if (trace_fraction < 1 && trace_plane_normal[2] > 0.7f) { + flMovetime -= flMovetime * fwfrac; + + if (roof_fraction < 1) { + Bounce(roof_plane_normal); + } + + /* FIXME: do we need velocity < 0? */ + if (trace_fraction < 1) { + Bounce(trace_plane_normal); + } else if (fwfrac < 1) { + Bounce(fwplane); + } + + origin = trace_endpos; + continue; + } + } + } + + /* stepping failed, assume crash? */ + if (trace_ent == world) { + if (vlen(velocity) > 300) { + float impact; + impact = -dotproduct(trace_plane_normal, velocity); + int iImpactDamage = impact / 100; + } + } + + Bounce(vecSavedNormal); + /* Physics_DoTouch(this, trace_ent); */ + } else { + break; + } + } +} + +void +prop_vehicle_driveable_wheel::Accel(float flMoveTime, float m_flTurn) +{ + prop_vehicle_driveable vehParent; + entity eDriver; + float flTraction; + vector vecAngle; + + vehParent = (prop_vehicle_driveable)owner; + eDriver = vehParent.m_eDriver; + vecAngle = vehParent.angles; + + makevectors(vecAngle); + + if (m_flTurn) { + /* cripple turnrate by our current velocity */ + float turnbreak = bound(0, vlen(velocity), 100) * 0.5; + + /* rotates v_forward */ + rotatevectorsbyangle([ 0, m_flTurn * turnbreak, 0]); + } + + tracebox(origin, mins, maxs, origin - v_up, MOVE_NOMONSTERS, owner); + + /* allow a range, for 1qu's worth of spare tyre pressure. or something */ + flTraction = 1 - trace_fraction; + + /* air friction, doubles up for general rolling friction, ish */ + velocity *= 1 - flMoveTime * 0.1; + + if (flTraction) { + if (eDriver) { + velocity += v_forward * bound(-1, vehParent.m_vecMoveValues[0] / 400, 1) * vehParent.m_flAcceleration * flMoveTime * flTraction; + } + + /* test if this car is skidding */ + float skid = (velocity * v_right); + if ( fabs(skid) > vehParent.m_flSkidSpeed ) { + vehParent.flags |= VEH_SKIDDING; + } + + /* nuke sideways velocity. if a wheel is off the ground this probably + means that it'll be pushed further. players should try not to roll + too much. */ + /* FIXME: push opposite wheel up slightly to model chassis momentum + not slowing as much as the wheel itself (zomg: race conditions!) */ + velocity -= (velocity * v_right) * v_right * vehParent.m_flTraction * flMoveTime * flTraction; + + if (!eDriver || (vehParent.m_iMoveButtons & INPUT_BUTTON2 || vehParent.m_vecMoveValues[2] > 0)) { + vector t; + + /* empty cars are assumed to have their brakes on. + nuke forward velocity. if a wheel is off the ground this probably + means that it'll be pushed further. players should try not to + roll too much. + + Note: really we ought to be applying some axel friction even + when not breaking, but we'll just depend on air friction for + that. */ + velocity -= (velocity * v_forward) * v_forward * vehParent.m_flBreakFactor * flMoveTime * flTraction; + + /* if break is on, nuke the final part of the velocity, so we can + become truely motionless.*/ + t = velocity - velocity * dotproduct(velocity, vehParent.m_vecGravityDir); + if (vlen(t) < 15) { + velocity -= t; + } + + /* don't bother with gravity if we're already on the ground and + breaking. this avoids weird slides. */ + if (!trace_fraction && trace_plane_normal * vehParent.m_vecGravityDir < -0.7f) { + return; + } + } + } + + /* apply gravity */ + velocity += vehParent.m_vecGravityDir * flMoveTime * serverkeyfloat("phy_gravity") * trace_fraction; + + tracebox(origin, mins * 4.0, maxs * 4.0, origin, MOVE_NORMAL, owner); + if (trace_ent && trace_ent != vehParent.m_eDriver) { + int iImpactDamage = vlen(velocity) / 10; + + if (iImpactDamage > 10) { + trace_ent.velocity = velocity * 2.0 + [0,0,500]; + velocity *= 0.25f; +#ifdef SERVER + if (trace_ent.takedamage) { + NSSurfacePropEntity foo = (NSSurfacePropEntity)trace_ent; + Damage_Apply(foo, vehParent.m_eDriver, iImpactDamage, 0, DMG_VEHICLE); + //print(sprintf("Delivering %i impact damage\n", iImpactDamage)); + } +#endif + } + } +} + +void +prop_vehicle_driveable_wheel::UpdateSuspension(float flTimeLength) +{ + float flDamp; + float flForce; + + if (fabs(m_flSuspension) > 0.001 || fabs(m_flSuspensionForce) > 0.001) { + m_flSuspension += m_flSuspensionForce * flTimeLength; + + flForce = bound(0, flTimeLength * 65, 2); + flDamp = 1 - (flTimeLength * 4); + if (flDamp < 0) { + flDamp = 0; + } + m_flSuspensionForce *= flDamp; + m_flSuspensionForce -= m_flSuspension * flForce; + m_flSuspension = bound(-15, m_flSuspension, 15); + } +} + +void +prop_vehicle_driveable_wheel::Physics(float turnrate, float flTimeLength) +{ + vector owner_pos; + + /* try to correct the wheel's position, in case it got stuck */ + owner_pos = owner.origin + (owner.mins + owner.maxs) * 0.5f; + tracebox(owner_pos, mins, maxs, origin, MOVE_NORMAL, owner); + setorigin(this, trace_endpos); + + /* see if we're in-air */ + other = world; + tracebox(origin, mins, maxs, origin - [0,0,1], MOVE_OTHERONLY, this); + if (!trace_startsolid) { + if ((trace_fraction < 1) && (trace_plane_normal[2] > 0.7)) { + flags |= FL_ONGROUND; + } else { + flags &= ~FL_ONGROUND; + m_flSuspensionForce += flTimeLength * 200.0; + } + } + + Accel(flTimeLength / 2, turnrate); + Move(flTimeLength); + Accel(flTimeLength / 2, turnrate); + UpdateSuspension(flTimeLength); + //print(sprintf("suspension: %d, force: %d\n", m_flSuspension, m_flSuspensionForce)); +} + +void +prop_vehicle_driveable_wheel::prop_vehicle_driveable_wheel(void) +{ + mins = [-8,-8,-35]; + maxs = [8,8,8]; + hitcontentsmaski = CONTENTBIT_BODY | CONTENTBITS_POINTSOLID | CONTENTBIT_VEHICLECLIP; +} + +#ifdef CLIENT +void +prop_vehicle_driveable::PredictPreFrame(void) +{ + SAVE_STATE(modelindex); + SAVE_STATE(origin); + SAVE_STATE(angles); + SAVE_STATE(velocity); + SAVE_STATE(m_flTurn); + SAVE_STATE(flags); + SAVE_STATE(driver_entnum); + + m_wlFL.PredictPreFrame(); + m_wlFR.PredictPreFrame(); + m_wlBL.PredictPreFrame(); + m_wlBR.PredictPreFrame(); +} + +void +prop_vehicle_driveable::PredictPostFrame(void) +{ + ROLL_BACK(modelindex); + ROLL_BACK(angles); + ROLL_BACK(origin); + ROLL_BACK(velocity); + ROLL_BACK(m_flTurn); + ROLL_BACK(flags); + ROLL_BACK(driver_entnum); + + m_wlFL.PredictPostFrame(); + m_wlFR.PredictPostFrame(); + m_wlBL.PredictPostFrame(); + m_wlBR.PredictPostFrame(); +} +#endif + +void +prop_vehicle_driveable::WeaponInput(void) +{ + +} + +void +prop_vehicle_driveable::PlayerInput(void) +{ + m_vecMoveValues = input_movevalues; + m_iMoveButtons = input_buttons; + m_flTimeLength = input_timelength; + + /* prediction frame... */ + RunVehiclePhysics(); + +#ifdef SERVER + /* allow us to exit */ + if (m_flUseTime < time) { + if (input_buttons & INPUT_BUTTON5) { + eActivator = m_eDriver; + OnPlayerUse(); + input_buttons &= ~INPUT_BUTTON5; + } + } +#endif + + WeaponInput(); + + /* only allow use key */ + input_buttons = (input_buttons & INPUT_BUTTON5); +} + +void +prop_vehicle_driveable::RunVehiclePhysics(void) +{ +#if SERVER + /* eject the dead */ + if (m_eDriver && m_eDriver.health <= 0) { + PlayerLeave((NSClientPlayer)m_eDriver); + } +#endif + + if (m_eDriver) { + float y; + + y = m_vecMoveValues[1]; + y = bound(-200, y, 200) / 200; + y *= m_flSteerFactor; + + if (y) { + if (y < 0 && m_flTurn < 0) { + m_flTurn = 0.0f; + } else if (y > 0 && m_flTurn > 0) { + m_flTurn = 0.0f; + } else { + m_flTurn = bound(-1, m_flTurn - y * m_flTimeLength, 1); + } + } else { + /* straighten wheels forward over time */ + if (m_flTurn < 0) { + m_flTurn = min(0, m_flTurn + m_flTimeLength * m_flStraightenFactor); + } else if (m_flTurn > 0) { + m_flTurn = max(0, m_flTurn - m_flTimeLength * m_flStraightenFactor); + } + } + + PlayerUpdateFlags(); + } + + if (spawnflags & VEHSF_NOFLIP) { angles[0] = bound (-45, angles[0], 45); angles[2] = bound (-45, angles[2], 45); - } - - flags &= ~VEH_SKIDDING; - - angles[0] = Math_FixDelta(angles[0]); - angles[1] = Math_FixDelta(angles[1]); - angles[2] = Math_FixDelta(angles[2]); - - velocity[0] = bound(-1000, velocity[0], 1000); - velocity[1] = bound(-1000, velocity[1], 1000); - velocity[2] = bound(-1000, velocity[2], 1000); - - makevectors(angles); - - setorigin( m_wlFL, origin ); - setorigin( m_wlBL, m_wlFL.origin - v_forward * 85 ); - setorigin( m_wlFL, m_wlFL.origin + v_forward * 85 ); - setorigin( m_wlFR, m_wlFL.origin + v_right * 40 ); - setorigin( m_wlFL, m_wlFL.origin - v_right * 40 ); - setorigin( m_wlBR, m_wlBL.origin + v_right * 40 ); - setorigin( m_wlBL, m_wlBL.origin - v_right * 40 ); - - m_wlFL.Physics( this.m_flTurn, m_flTimeLength); - m_wlFR.Physics( this.m_flTurn, m_flTimeLength); - m_wlBL.Physics( 0, m_flTimeLength); - m_wlBR.Physics( 0, m_flTimeLength); - - velocity = m_wlFL.velocity; - velocity += m_wlFR.velocity; - velocity += m_wlBL.velocity; - velocity += m_wlBR.velocity; - velocity *= 0.25f; - - v_right = (m_wlFR.origin - m_wlFL.origin); - v_right += (m_wlBR.origin - m_wlBL.origin); - v_forward = (m_wlFL.origin + m_wlFR.origin); - v_forward -= (m_wlBL.origin + m_wlBR.origin); - v_up = -crossproduct(v_forward, v_right); - angles = vectoangles( v_forward, v_up ); - - /* figure out the new chassis position */ - vector new_origin; - new_origin = m_wlFL.origin; - new_origin += m_wlFR.origin; - new_origin += m_wlBL.origin; - new_origin += m_wlBR.origin; - new_origin *= 0.25f; - setorigin(this, new_origin); - - makevectors(angles); - m_eCollBox1.SetOrigin(origin + (v_forward * 64)); - m_eCollBox2.SetOrigin(origin + (v_forward * -72)); - m_eCollBox1.SetSolid(SOLID_BBOX); - m_eCollBox2.SetSolid(SOLID_BBOX); - - PlayerAlign(); - - /* actiony stuff */ -} - -#ifdef SERVER -void -prop_vehicle_driveable::OnPlayerUse(void) -{ - if (m_flUseTime > time) - return; - - if (m_eDriver == eActivator) { - PlayerLeave((NSClientPlayer)eActivator); - setorigin(eActivator, GetExitPos()); - } else if (!m_eDriver) { - PlayerEnter((NSClientPlayer)eActivator); - m_vecPlayerPos = [0,0,0]; - } - m_flUseTime = time + 2.0f; -} - -void -prop_vehicle_driveable::Respawn(void) -{ - SetMovetype(MOVETYPE_NONE); - SetSolid(SOLID_BBOX); - SetOrigin(GetSpawnOrigin() + [0,0,32]); - SetAngles(GetSpawnAngles()); - SetModel(GetSpawnModel()); - - m_flBRWheelAxel = gettagindex( this, "RRWheelAxel" ); - m_flBLWheelAxel = gettagindex( this, "RLWheelAxel" ); - m_flFLWheelAxel = gettagindex( this, "FLWheelAxel" ); - m_flFRWheelAxel = gettagindex( this, "FRWheelAxel" ); - - m_wlFL.velocity = - m_wlFR.velocity = - m_wlBL.velocity = - m_wlBR.velocity = - velocity = [0,0,0]; - PlayerUse = OnPlayerUse; - setsize( this, [-50,-50,0], [50,50,64]); - - if (m_eDriver) - PlayerLeave((NSClientPlayer)m_eDriver); - - SendFlags = -1; -} -#endif - -#ifdef CLIENT -void -prop_vehicle_driveable::ReceiveEntity(float flSendFlags, float flNew) -{ - if (flSendFlags & VEHFL_DRIVER) { - driver_entnum = readentitynum(); - DriverRelink(); - } - - if (flSendFlags & VEHFL_MODELINDEX) { - modelindex = readshort(); - m_vecSeatOffest[0] = readfloat(); - m_vecSeatOffest[1] = readfloat(); - m_vecSeatOffest[2] = readfloat(); - setsize( this, [-50,-50,0], [50,50,64]); - } - - if (flSendFlags & VEHFL_ORIGIN) { - origin[0] = readcoord(); - origin[1] = readcoord(); - origin[2] = readcoord(); - setorigin(this, origin); - - makevectors(angles); - - setorigin( m_wlFL, origin ); - setorigin( m_wlBL, m_wlFL.origin - v_forward * 85 ); - setorigin( m_wlFL, m_wlFL.origin + v_forward * 85 ); - setorigin( m_wlFR, m_wlFL.origin + v_right * 40 ); - setorigin( m_wlFL, m_wlFL.origin - v_right * 40 ); - setorigin( m_wlBR, m_wlBL.origin + v_right * 40 ); - setorigin( m_wlBL, m_wlBL.origin - v_right * 40 ); - m_eCollBox1.SetOrigin(origin + (v_forward * 64)); - m_eCollBox2.SetOrigin(origin + (v_forward * -72)); - } - - if (flSendFlags & VEHFL_ANGLES) { - angles[0] = readfloat(); - angles[1] = readfloat(); - angles[2] = readfloat(); - } - - if (flSendFlags & VEHFL_VELOCITY) { - velocity[0] = readfloat(); - velocity[1] = readfloat(); - velocity[2] = readfloat(); - } - - if (flSendFlags & VEHFL_TURNING) - m_flTurn = readfloat(); - - if (flSendFlags & VEHFL_FLAGS) - flags = readfloat(); - - if (flNew) { - drawmask = MASK_ENGINE; - SetMovetype(MOVETYPE_NONE); - SetSolid(SOLID_BBOX); - - m_flBRWheelAxel = gettagindex( this, "RRWheelAxel" ); - m_flBLWheelAxel = gettagindex( this, "RLWheelAxel" ); - m_flFLWheelAxel = gettagindex( this, "FLWheelAxel" ); - m_flFRWheelAxel = gettagindex( this, "FRWheelAxel" ); - - m_wlFL.velocity = - m_wlFR.velocity = - m_wlBL.velocity = - m_wlBR.velocity = - velocity = [0,0,0]; - RunVehiclePhysics(); - customphysics = Physics; - } - - PredictPreFrame(); -} -#else -void -prop_vehicle_driveable::EvaluateEntity(void) -{ - /* while the engine is still handling physics for these, we can't - * predict when origin/angle might change */ - if (ATTR_CHANGED(origin)) - SetSendFlags(VEHFL_ORIGIN); - - if (ATTR_CHANGED(angles)) { - angles[0] = Math_FixDelta(angles[0]); - angles[1] = Math_FixDelta(angles[1]); - angles[2] = Math_FixDelta(angles[2]); - - SetSendFlags(VEHFL_ANGLES); - } - if (ATTR_CHANGED(modelindex)) - SetSendFlags(VEHFL_MODELINDEX); - if (ATTR_CHANGED(velocity)) - SetSendFlags(VEHFL_VELOCITY); - if (ATTR_CHANGED(m_flTurn)) - SetSendFlags(VEHFL_TURNING); - if (ATTR_CHANGED(m_eDriver)) - SetSendFlags(VEHFL_DRIVER); - if (ATTR_CHANGED(flags)) - SetSendFlags(VEHFL_FLAGS); - - SAVE_STATE(origin); - SAVE_STATE(angles); - SAVE_STATE(modelindex); - SAVE_STATE(velocity); - SAVE_STATE(m_flTurn); - SAVE_STATE(m_eDriver); - SAVE_STATE(flags); -} - -float -prop_vehicle_driveable::SendEntity(entity ePVSent, float flSendFlags) -{ - WriteByte(MSG_ENTITY, ENT_VEH_4WHEEL); - WriteFloat(MSG_ENTITY, flSendFlags); - - if (!modelindex) - return (false); - - if (flSendFlags & VEHFL_DRIVER) { - WriteEntity(MSG_ENTITY, m_eDriver); - } - - if (flSendFlags & VEHFL_MODELINDEX) { - WriteShort(MSG_ENTITY, modelindex); - WriteFloat(MSG_ENTITY, m_vecSeatOffest[0]); - WriteFloat(MSG_ENTITY, m_vecSeatOffest[1]); - WriteFloat(MSG_ENTITY, m_vecSeatOffest[2]); - } - - if (flSendFlags & VEHFL_ORIGIN) { - WriteCoord(MSG_ENTITY, origin[0]); - WriteCoord(MSG_ENTITY, origin[1]); - WriteCoord(MSG_ENTITY, origin[2]); - } - - if (flSendFlags & VEHFL_ANGLES) { - WriteFloat(MSG_ENTITY, angles[0]); - WriteFloat(MSG_ENTITY, angles[1]); - WriteFloat(MSG_ENTITY, angles[2]); - } - - if (flSendFlags & VEHFL_VELOCITY) { - WriteFloat(MSG_ENTITY, velocity[0]); - WriteFloat(MSG_ENTITY, velocity[1]); - WriteFloat(MSG_ENTITY, velocity[2]); - } - - if (flSendFlags & VEHFL_TURNING) - WriteFloat(MSG_ENTITY, m_flTurn); - - if (flSendFlags & VEHFL_FLAGS) - WriteFloat(MSG_ENTITY, flags); - - return true; -} -#endif - -void -prop_vehicle_driveable::Spawned(void) -{ - super::Spawned(); - -#ifdef SERVER - Sound_Precache("prop_vehicle_driveable.bounce"); -#endif -} - -void -prop_vehicle_driveable::prop_vehicle_driveable(void) -{ - m_eDriver = __NULL__; - m_flBounceFactor = 1.25f; - m_flAcceleration = 600.0f; - m_flSkidSpeed = 256.0f; - m_flTraction = 5.0f; - m_flBreakFactor = 2.0f; - m_flSteerFactor = 1.0f; - m_flStraightenFactor = 1.0f; - m_vecGravityDir = [0,0,-1]; - m_iVehicleFlags |= VHF_FROZEN; - hitcontentsmaski = CONTENTBIT_BODY | CONTENTBITS_POINTSOLID | CONTENTBIT_VEHICLECLIP; - - if (!m_eCollBox1) - m_eCollBox1 = spawn(NSEntity); - if (!m_eCollBox2) - m_eCollBox2 = spawn(NSEntity); - - { - m_eCollBox1.SetSize([-32,-32,0], [32,32,32]); - m_eCollBox2.SetSize([-32,-32,0], [32,32,32]); - } - - m_eCollBox1.hitcontentsmaski = hitcontentsmaski; - m_eCollBox2.hitcontentsmaski = hitcontentsmaski; - - if (!m_wlFL) - m_wlFL = spawn(prop_vehicle_driveable_wheel); - if (!m_wlFR) - m_wlFR = spawn(prop_vehicle_driveable_wheel); - if (!m_wlBL) - m_wlBL = spawn(prop_vehicle_driveable_wheel); - if (!m_wlBR) - m_wlBR = spawn(prop_vehicle_driveable_wheel); - - m_eCollBox1.owner = m_eCollBox2.owner = \ - m_wlFL.owner = m_wlFR.owner = \ - m_wlBL.owner = m_wlBR.owner = this; - - customphysics = Physics; -} - -#ifdef CLIENT -void -prop_vehicle_driveable_readentity(float isnew) -{ - prop_vehicle_driveable veh = (prop_vehicle_driveable)self; - float flags = readfloat(); - - if (isnew) - spawnfunc_prop_vehicle_driveable(); - - veh.ReceiveEntity(flags, isnew); -} -#endif + } + + flags &= ~VEH_SKIDDING; + + angles[0] = Math_FixDelta(angles[0]); + angles[1] = Math_FixDelta(angles[1]); + angles[2] = Math_FixDelta(angles[2]); + + velocity[0] = bound(-1000, velocity[0], 1000); + velocity[1] = bound(-1000, velocity[1], 1000); + velocity[2] = bound(-1000, velocity[2], 1000); + + makevectors(angles); + + setorigin( m_wlFL, origin ); + setorigin( m_wlBL, m_wlFL.origin - v_forward * 85 ); + setorigin( m_wlFL, m_wlFL.origin + v_forward * 85 ); + setorigin( m_wlFR, m_wlFL.origin + v_right * 40 ); + setorigin( m_wlFL, m_wlFL.origin - v_right * 40 ); + setorigin( m_wlBR, m_wlBL.origin + v_right * 40 ); + setorigin( m_wlBL, m_wlBL.origin - v_right * 40 ); + + m_wlFL.Physics( this.m_flTurn, m_flTimeLength); + m_wlFR.Physics( this.m_flTurn, m_flTimeLength); + m_wlBL.Physics( 0, m_flTimeLength); + m_wlBR.Physics( 0, m_flTimeLength); + + velocity = m_wlFL.velocity; + velocity += m_wlFR.velocity; + velocity += m_wlBL.velocity; + velocity += m_wlBR.velocity; + velocity *= 0.25f; + + v_right = (m_wlFR.origin - m_wlFL.origin); + v_right += (m_wlBR.origin - m_wlBL.origin); + v_forward = (m_wlFL.origin + m_wlFR.origin); + v_forward -= (m_wlBL.origin + m_wlBR.origin); + v_up = -crossproduct(v_forward, v_right); + angles = vectoangles( v_forward, v_up ); + + /* figure out the new chassis position */ + vector new_origin; + new_origin = m_wlFL.origin; + new_origin += m_wlFR.origin; + new_origin += m_wlBL.origin; + new_origin += m_wlBR.origin; + new_origin *= 0.25f; + setorigin(this, new_origin); + + makevectors(angles); + m_eCollBox1.SetOrigin(origin + (v_forward * 64)); + m_eCollBox2.SetOrigin(origin + (v_forward * -72)); + m_eCollBox1.SetSolid(SOLID_BBOX); + m_eCollBox2.SetSolid(SOLID_BBOX); + + PlayerAlign(); + + /* actiony stuff */ +} + +#ifdef SERVER +void +prop_vehicle_driveable::OnPlayerUse(void) +{ + if (m_flUseTime > time) + return; + + if (m_eDriver == eActivator) { + PlayerLeave((NSClientPlayer)eActivator); + setorigin(eActivator, GetExitPos()); + } else if (!m_eDriver) { + PlayerEnter((NSClientPlayer)eActivator); + m_vecPlayerPos = [0,0,0]; + } + m_flUseTime = time + 2.0f; +} + +void +prop_vehicle_driveable::Respawn(void) +{ + SetMovetype(MOVETYPE_NONE); + SetSolid(SOLID_BBOX); + SetOrigin(GetSpawnOrigin() + [0,0,32]); + SetAngles(GetSpawnAngles()); + SetModel(GetSpawnModel()); + + m_flBRWheelAxel = gettagindex( this, "RRWheelAxel" ); + m_flBLWheelAxel = gettagindex( this, "RLWheelAxel" ); + m_flFLWheelAxel = gettagindex( this, "FLWheelAxel" ); + m_flFRWheelAxel = gettagindex( this, "FRWheelAxel" ); + + m_wlFL.velocity = + m_wlFR.velocity = + m_wlBL.velocity = + m_wlBR.velocity = + velocity = [0,0,0]; + PlayerUse = OnPlayerUse; + setsize( this, [-50,-50,0], [50,50,64]); + + if (m_eDriver) + PlayerLeave((NSClientPlayer)m_eDriver); + + SendFlags = -1; +} +#endif + +#ifdef CLIENT +void +prop_vehicle_driveable::ReceiveEntity(float flSendFlags, float flNew) +{ + if (flSendFlags & VEHFL_DRIVER) { + driver_entnum = readentitynum(); + DriverRelink(); + } + + if (flSendFlags & VEHFL_MODELINDEX) { + modelindex = readshort(); + m_vecSeatOffest[0] = readfloat(); + m_vecSeatOffest[1] = readfloat(); + m_vecSeatOffest[2] = readfloat(); + setsize( this, [-50,-50,0], [50,50,64]); + } + + if (flSendFlags & VEHFL_ORIGIN) { + origin[0] = readcoord(); + origin[1] = readcoord(); + origin[2] = readcoord(); + setorigin(this, origin); + + makevectors(angles); + + setorigin( m_wlFL, origin ); + setorigin( m_wlBL, m_wlFL.origin - v_forward * 85 ); + setorigin( m_wlFL, m_wlFL.origin + v_forward * 85 ); + setorigin( m_wlFR, m_wlFL.origin + v_right * 40 ); + setorigin( m_wlFL, m_wlFL.origin - v_right * 40 ); + setorigin( m_wlBR, m_wlBL.origin + v_right * 40 ); + setorigin( m_wlBL, m_wlBL.origin - v_right * 40 ); + m_eCollBox1.SetOrigin(origin + (v_forward * 64)); + m_eCollBox2.SetOrigin(origin + (v_forward * -72)); + } + + if (flSendFlags & VEHFL_ANGLES) { + angles[0] = readfloat(); + angles[1] = readfloat(); + angles[2] = readfloat(); + } + + if (flSendFlags & VEHFL_VELOCITY) { + velocity[0] = readfloat(); + velocity[1] = readfloat(); + velocity[2] = readfloat(); + } + + if (flSendFlags & VEHFL_TURNING) + m_flTurn = readfloat(); + + if (flSendFlags & VEHFL_FLAGS) + flags = readfloat(); + + if (flNew) { + drawmask = MASK_ENGINE; + SetMovetype(MOVETYPE_NONE); + SetSolid(SOLID_BBOX); + + m_flBRWheelAxel = gettagindex( this, "RRWheelAxel" ); + m_flBLWheelAxel = gettagindex( this, "RLWheelAxel" ); + m_flFLWheelAxel = gettagindex( this, "FLWheelAxel" ); + m_flFRWheelAxel = gettagindex( this, "FRWheelAxel" ); + + m_wlFL.velocity = + m_wlFR.velocity = + m_wlBL.velocity = + m_wlBR.velocity = + velocity = [0,0,0]; + RunVehiclePhysics(); + customphysics = Physics; + } + + PredictPreFrame(); +} +#else +void +prop_vehicle_driveable::EvaluateEntity(void) +{ + /* while the engine is still handling physics for these, we can't + * predict when origin/angle might change */ + if (ATTR_CHANGED(origin)) + SetSendFlags(VEHFL_ORIGIN); + + if (ATTR_CHANGED(angles)) { + angles[0] = Math_FixDelta(angles[0]); + angles[1] = Math_FixDelta(angles[1]); + angles[2] = Math_FixDelta(angles[2]); + + SetSendFlags(VEHFL_ANGLES); + } + if (ATTR_CHANGED(modelindex)) + SetSendFlags(VEHFL_MODELINDEX); + if (ATTR_CHANGED(velocity)) + SetSendFlags(VEHFL_VELOCITY); + if (ATTR_CHANGED(m_flTurn)) + SetSendFlags(VEHFL_TURNING); + if (ATTR_CHANGED(m_eDriver)) + SetSendFlags(VEHFL_DRIVER); + if (ATTR_CHANGED(flags)) + SetSendFlags(VEHFL_FLAGS); + + SAVE_STATE(origin); + SAVE_STATE(angles); + SAVE_STATE(modelindex); + SAVE_STATE(velocity); + SAVE_STATE(m_flTurn); + SAVE_STATE(m_eDriver); + SAVE_STATE(flags); +} + +float +prop_vehicle_driveable::SendEntity(entity ePVSent, float flSendFlags) +{ + WriteByte(MSG_ENTITY, ENT_VEH_4WHEEL); + WriteFloat(MSG_ENTITY, flSendFlags); + + if (!modelindex) + return (false); + + if (flSendFlags & VEHFL_DRIVER) { + WriteEntity(MSG_ENTITY, m_eDriver); + } + + if (flSendFlags & VEHFL_MODELINDEX) { + WriteShort(MSG_ENTITY, modelindex); + WriteFloat(MSG_ENTITY, m_vecSeatOffest[0]); + WriteFloat(MSG_ENTITY, m_vecSeatOffest[1]); + WriteFloat(MSG_ENTITY, m_vecSeatOffest[2]); + } + + if (flSendFlags & VEHFL_ORIGIN) { + WriteCoord(MSG_ENTITY, origin[0]); + WriteCoord(MSG_ENTITY, origin[1]); + WriteCoord(MSG_ENTITY, origin[2]); + } + + if (flSendFlags & VEHFL_ANGLES) { + WriteFloat(MSG_ENTITY, angles[0]); + WriteFloat(MSG_ENTITY, angles[1]); + WriteFloat(MSG_ENTITY, angles[2]); + } + + if (flSendFlags & VEHFL_VELOCITY) { + WriteFloat(MSG_ENTITY, velocity[0]); + WriteFloat(MSG_ENTITY, velocity[1]); + WriteFloat(MSG_ENTITY, velocity[2]); + } + + if (flSendFlags & VEHFL_TURNING) + WriteFloat(MSG_ENTITY, m_flTurn); + + if (flSendFlags & VEHFL_FLAGS) + WriteFloat(MSG_ENTITY, flags); + + return true; +} +#endif + +void +prop_vehicle_driveable::Spawned(void) +{ + super::Spawned(); + +#ifdef SERVER + Sound_Precache("prop_vehicle_driveable.bounce"); +#endif +} + +void +prop_vehicle_driveable::prop_vehicle_driveable(void) +{ + m_eDriver = __NULL__; + m_flBounceFactor = 1.25f; + m_flAcceleration = 600.0f; + m_flSkidSpeed = 256.0f; + m_flTraction = 5.0f; + m_flBreakFactor = 2.0f; + m_flSteerFactor = 1.0f; + m_flStraightenFactor = 1.0f; + m_vecGravityDir = [0,0,-1]; + m_iVehicleFlags |= VHF_FROZEN; + hitcontentsmaski = CONTENTBIT_BODY | CONTENTBITS_POINTSOLID | CONTENTBIT_VEHICLECLIP; + + if (!m_eCollBox1) + m_eCollBox1 = spawn(NSEntity); + if (!m_eCollBox2) + m_eCollBox2 = spawn(NSEntity); + + { + m_eCollBox1.SetSize([-32,-32,0], [32,32,32]); + m_eCollBox2.SetSize([-32,-32,0], [32,32,32]); + } + + m_eCollBox1.hitcontentsmaski = hitcontentsmaski; + m_eCollBox2.hitcontentsmaski = hitcontentsmaski; + + if (!m_wlFL) + m_wlFL = spawn(prop_vehicle_driveable_wheel); + if (!m_wlFR) + m_wlFR = spawn(prop_vehicle_driveable_wheel); + if (!m_wlBL) + m_wlBL = spawn(prop_vehicle_driveable_wheel); + if (!m_wlBR) + m_wlBR = spawn(prop_vehicle_driveable_wheel); + + m_eCollBox1.owner = m_eCollBox2.owner = \ + m_wlFL.owner = m_wlFR.owner = \ + m_wlBL.owner = m_wlBR.owner = this; + + customphysics = Physics; +} + +#ifdef CLIENT +void +prop_vehicle_driveable_readentity(float isnew) +{ + prop_vehicle_driveable veh = (prop_vehicle_driveable)self; + float flags = readfloat(); + + if (isnew) + spawnfunc_prop_vehicle_driveable(); + + veh.ReceiveEntity(flags, isnew); +} +#endif diff --git a/src/gs-entbase/shared/spraylogo.qc b/src/gs-entbase/shared/spraylogo.qc index cf146781..0d6984d5 100644 --- a/src/gs-entbase/shared/spraylogo.qc +++ b/src/gs-entbase/shared/spraylogo.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef SERVER void diff --git a/src/gs-entbase/shared/trigger_camera.qc b/src/gs-entbase/shared/trigger_camera.qc index d426db04..99f06926 100644 --- a/src/gs-entbase/shared/trigger_camera.qc +++ b/src/gs-entbase/shared/trigger_camera.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_camera (1 0 0) (-8 -8 -8) (8 8 8) Forces a camera change when triggered. diff --git a/src/gs-entbase/shared/trigger_gravity.qc b/src/gs-entbase/shared/trigger_gravity.qc index f236ca5f..91e394e4 100644 --- a/src/gs-entbase/shared/trigger_gravity.qc +++ b/src/gs-entbase/shared/trigger_gravity.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED trigger_gravity (0 .5 .8) ? Volume that will, when an entity enters it, permanently alters how it diff --git a/src/gs-entbase/shared/worldspawn.qc b/src/gs-entbase/shared/worldspawn.qc index b749191d..dffd4e1c 100644 --- a/src/gs-entbase/shared/worldspawn.qc +++ b/src/gs-entbase/shared/worldspawn.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /*QUAKED worldspawn (0 0 0) ? Only used for the world. @@ -128,4 +128,4 @@ void worldspawn::worldspawn(void) { } -#endif \ No newline at end of file +#endif diff --git a/src/materials/Alien.qc b/src/materials/Alien.qc index f2c2851a..3799a7cf 100644 --- a/src/materials/Alien.qc +++ b/src/materials/Alien.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Alien:NSMaterial { diff --git a/src/materials/Computer.qc b/src/materials/Computer.qc index 9debc35b..dcd99359 100644 --- a/src/materials/Computer.qc +++ b/src/materials/Computer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Computer:NSMaterial { diff --git a/src/materials/Concrete.qc b/src/materials/Concrete.qc index cab773ec..0cdd00d3 100644 --- a/src/materials/Concrete.qc +++ b/src/materials/Concrete.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Concrete:NSMaterial { diff --git a/src/materials/Dirt.qc b/src/materials/Dirt.qc index eec2b78f..eb8bb4b5 100644 --- a/src/materials/Dirt.qc +++ b/src/materials/Dirt.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Dirt:NSMaterial { diff --git a/src/materials/Flesh.qc b/src/materials/Flesh.qc index 9d5c2aa6..138775cb 100644 --- a/src/materials/Flesh.qc +++ b/src/materials/Flesh.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Flesh:NSMaterial { diff --git a/src/materials/Foliage.qc b/src/materials/Foliage.qc index 805c16e2..9f4f8d34 100644 --- a/src/materials/Foliage.qc +++ b/src/materials/Foliage.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Foliage:NSMaterial { diff --git a/src/materials/Glass.qc b/src/materials/Glass.qc index c1b38316..0bb8022b 100644 --- a/src/materials/Glass.qc +++ b/src/materials/Glass.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Glass:NSMaterial { diff --git a/src/materials/Grate.qc b/src/materials/Grate.qc index 3d4f5721..f59d6ec2 100644 --- a/src/materials/Grate.qc +++ b/src/materials/Grate.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Grate:NSMaterial { diff --git a/src/materials/Metal.qc b/src/materials/Metal.qc index ff96002e..ac1f5b10 100644 --- a/src/materials/Metal.qc +++ b/src/materials/Metal.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Metal:NSMaterial { diff --git a/src/materials/Sand.qc b/src/materials/Sand.qc index 92b95a31..8f79578e 100644 --- a/src/materials/Sand.qc +++ b/src/materials/Sand.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Sand:NSMaterial { diff --git a/src/materials/Slosh.qc b/src/materials/Slosh.qc index 7d4270dc..608d264c 100644 --- a/src/materials/Slosh.qc +++ b/src/materials/Slosh.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Slosh:NSMaterial { diff --git a/src/materials/Snow.qc b/src/materials/Snow.qc index 3c8a404d..13286e36 100644 --- a/src/materials/Snow.qc +++ b/src/materials/Snow.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Snow:NSMaterial { diff --git a/src/materials/Tile.qc b/src/materials/Tile.qc index b4c7f0fd..c2c72f71 100644 --- a/src/materials/Tile.qc +++ b/src/materials/Tile.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Tile:NSMaterial { diff --git a/src/materials/Vent.qc b/src/materials/Vent.qc index 01e50c59..21290aeb 100644 --- a/src/materials/Vent.qc +++ b/src/materials/Vent.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Vent:NSMaterial { diff --git a/src/materials/Wood.qc b/src/materials/Wood.qc index fda7122f..4586a511 100644 --- a/src/materials/Wood.qc +++ b/src/materials/Wood.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class Wood:NSMaterial { diff --git a/src/menu-fn/background.qc b/src/menu-fn/background.qc index 089b07fd..eadfa8e5 100644 --- a/src/menu-fn/background.qc +++ b/src/menu-fn/background.qc @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + void Background_WON(void) { diff --git a/src/menu-fn/bitmaps.h b/src/menu-fn/bitmaps.h index ccd28d59..9f2b8010 100644 --- a/src/menu-fn/bitmaps.h +++ b/src/menu-fn/bitmaps.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ string g_bmp[78] = { "gfx/shell/btns_main", diff --git a/src/menu-fn/colors.qc b/src/menu-fn/colors.qc index dc0a2ea4..e0214d53 100644 --- a/src/menu-fn/colors.qc +++ b/src/menu-fn/colors.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "../shared/colors.h" diff --git a/src/menu-fn/defs.h b/src/menu-fn/defs.h index 1f30ff2a..ad672b01 100644 --- a/src/menu-fn/defs.h +++ b/src/menu-fn/defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "../client/font.h" #include "../shared/global.h" diff --git a/src/menu-fn/entry.qc b/src/menu-fn/entry.qc index b144ab1a..22f79404 100644 --- a/src/menu-fn/entry.qc +++ b/src/menu-fn/entry.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int g_initialized = FALSE; diff --git a/src/menu-fn/m_addserver.qc b/src/menu-fn/m_addserver.qc index e933e38d..b8b20952 100644 --- a/src/menu-fn/m_addserver.qc +++ b/src/menu-fn/m_addserver.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void menu_addserver_init(void) diff --git a/src/menu-fn/m_advancedcontrols.qc b/src/menu-fn/m_advancedcontrols.qc index 5ebcf7ef..3c50c76e 100644 --- a/src/menu-fn/m_advancedcontrols.qc +++ b/src/menu-fn/m_advancedcontrols.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_advcontrols; CCheckBox acn_cbCrosshair; diff --git a/src/menu-fn/m_advancedcustomize.qc b/src/menu-fn/m_advancedcustomize.qc index b7f0d933..e0f5eb4a 100644 --- a/src/menu-fn/m_advancedcustomize.qc +++ b/src/menu-fn/m_advancedcustomize.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_advcustomize; CMainButton ac_btnDone; diff --git a/src/menu-fn/m_advancedmpoptions.qc b/src/menu-fn/m_advancedmpoptions.qc index 48589d65..0536cb6c 100644 --- a/src/menu-fn/m_advancedmpoptions.qc +++ b/src/menu-fn/m_advancedmpoptions.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void menu_advancedmpoptions_init(void) diff --git a/src/menu-fn/m_audio.qc b/src/menu-fn/m_audio.qc index 3b057d29..e20e370e 100644 --- a/src/menu-fn/m_audio.qc +++ b/src/menu-fn/m_audio.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_audio; CMainButton au_btnDone; diff --git a/src/menu-fn/m_chatrooms.qc b/src/menu-fn/m_chatrooms.qc index cb2b3f0f..d1344c2b 100644 --- a/src/menu-fn/m_chatrooms.qc +++ b/src/menu-fn/m_chatrooms.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CFrame cr_frLog; CFrame cr_frUsers; diff --git a/src/menu-fn/m_chatroomslist.qc b/src/menu-fn/m_chatroomslist.qc index f258933e..97dd06e5 100644 --- a/src/menu-fn/m_chatroomslist.qc +++ b/src/menu-fn/m_chatroomslist.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_chatroomslist; CMainButton crl_btnJoin; diff --git a/src/menu-fn/m_configuration.qc b/src/menu-fn/m_configuration.qc index a46354bd..4003a868 100644 --- a/src/menu-fn/m_configuration.qc +++ b/src/menu-fn/m_configuration.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_configuration; CMainButton cf_btnControls; diff --git a/src/menu-fn/m_contentcontrol.qc b/src/menu-fn/m_contentcontrol.qc index 0468b0ee..0c90bbb0 100644 --- a/src/menu-fn/m_contentcontrol.qc +++ b/src/menu-fn/m_contentcontrol.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget cc_gore; CMainButton cc_btnDone; diff --git a/src/menu-fn/m_controls.qc b/src/menu-fn/m_controls.qc index def83b51..1fc6aad5 100644 --- a/src/menu-fn/m_controls.qc +++ b/src/menu-fn/m_controls.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_controls; CMainButton ctrl_btnDefaults; diff --git a/src/menu-fn/m_creategame.qc b/src/menu-fn/m_creategame.qc index ae921074..e87bc713 100644 --- a/src/menu-fn/m_creategame.qc +++ b/src/menu-fn/m_creategame.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ string(searchhandle handle, float num) search_getpackagename = #0:search_getpackagename; diff --git a/src/menu-fn/m_creategame_inet.qc b/src/menu-fn/m_creategame_inet.qc index 53e997d5..9b55bf1f 100644 --- a/src/menu-fn/m_creategame_inet.qc +++ b/src/menu-fn/m_creategame_inet.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_createinet; CMainButton createinet_btnAdv; diff --git a/src/menu-fn/m_customgame.qc b/src/menu-fn/m_customgame.qc index f7cc8fb0..9a77cfbc 100644 --- a/src/menu-fn/m_customgame.qc +++ b/src/menu-fn/m_customgame.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* the menu specific variables */ #ifndef WEBMENU diff --git a/src/menu-fn/m_customize.qc b/src/menu-fn/m_customize.qc index 6307a5c0..0a9036d3 100644 --- a/src/menu-fn/m_customize.qc +++ b/src/menu-fn/m_customize.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_customize; CMainButton cz_btnDone; diff --git a/src/menu-fn/m_filter.qc b/src/menu-fn/m_filter.qc index 358838ca..ec67c467 100644 --- a/src/menu-fn/m_filter.qc +++ b/src/menu-fn/m_filter.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void menu_filter_init(void) diff --git a/src/menu-fn/m_internetgames.qc b/src/menu-fn/m_internetgames.qc index a2c1d1ca..6ec2df22 100644 --- a/src/menu-fn/m_internetgames.qc +++ b/src/menu-fn/m_internetgames.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int g_inetrefresh = FALSE; diff --git a/src/menu-fn/m_intro.qc b/src/menu-fn/m_intro.qc index f29b7462..847f672a 100644 --- a/src/menu-fn/m_intro.qc +++ b/src/menu-fn/m_intro.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enum { diff --git a/src/menu-fn/m_langames.qc b/src/menu-fn/m_langames.qc index f2a86da8..c9f66946 100644 --- a/src/menu-fn/m_langames.qc +++ b/src/menu-fn/m_langames.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_lan; CMainButton lan_btnJoin; diff --git a/src/menu-fn/m_loadgame.qc b/src/menu-fn/m_loadgame.qc index be2888bd..edcf7d58 100644 --- a/src/menu-fn/m_loadgame.qc +++ b/src/menu-fn/m_loadgame.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ string *g_savegames; int g_savegame_count; diff --git a/src/menu-fn/m_main.qc b/src/menu-fn/m_main.qc index ffb5c7b9..e6872cff 100644 --- a/src/menu-fn/m_main.qc +++ b/src/menu-fn/m_main.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_main; CMainButton main_btnConsole; diff --git a/src/menu-fn/m_multiplayer.qc b/src/menu-fn/m_multiplayer.qc index f13db6ce..eebd0824 100644 --- a/src/menu-fn/m_multiplayer.qc +++ b/src/menu-fn/m_multiplayer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_multiplayer; diff --git a/src/menu-fn/m_newgame.qc b/src/menu-fn/m_newgame.qc index d6405d31..7e572c5b 100644 --- a/src/menu-fn/m_newgame.qc +++ b/src/menu-fn/m_newgame.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_newgame; CMainButton ng_btnEasy; diff --git a/src/menu-fn/m_spectategames.qc b/src/menu-fn/m_spectategames.qc index 11b6d22f..2fbadf07 100644 --- a/src/menu-fn/m_spectategames.qc +++ b/src/menu-fn/m_spectategames.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void menu_spectategames_init(void) diff --git a/src/menu-fn/m_updates.qc b/src/menu-fn/m_updates.qc index 2691372c..8f4dcaed 100644 --- a/src/menu-fn/m_updates.qc +++ b/src/menu-fn/m_updates.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define FN_UPDATE_IMGURL "http://www.frag-net.com/dl/img/%s.jpg" diff --git a/src/menu-fn/m_video.qc b/src/menu-fn/m_video.qc index b0a3ef4b..45217fe0 100644 --- a/src/menu-fn/m_video.qc +++ b/src/menu-fn/m_video.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_video; CMainButton vd_btnVidOptions; diff --git a/src/menu-fn/m_videomodes.qc b/src/menu-fn/m_videomodes.qc index 5c430d4a..dcf3abb3 100644 --- a/src/menu-fn/m_videomodes.qc +++ b/src/menu-fn/m_videomodes.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget fn_vidmodes; CMainButton vm_btnOk; diff --git a/src/menu-fn/m_videooptions.qc b/src/menu-fn/m_videooptions.qc index e112784c..1a0cd220 100644 --- a/src/menu-fn/m_videooptions.qc +++ b/src/menu-fn/m_videooptions.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var float autocvar_vid_brightness = 0.0f; var float autocvar_vid_gamma = 1.0f; diff --git a/src/menu-fn/m_viewgameinfo.qc b/src/menu-fn/m_viewgameinfo.qc index fc71ac57..ce26ef2e 100644 --- a/src/menu-fn/m_viewgameinfo.qc +++ b/src/menu-fn/m_viewgameinfo.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void menu_viewgameinfo_init(void) diff --git a/src/menu-fn/m_viewreadme.qc b/src/menu-fn/m_viewreadme.qc index c1266278..3d06032c 100644 --- a/src/menu-fn/m_viewreadme.qc +++ b/src/menu-fn/m_viewreadme.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CWidget vr_readme; CMainButton vr_btnDone; diff --git a/src/menu-fn/menu.qc b/src/menu-fn/menu.qc index ef2585fc..8584927d 100644 --- a/src/menu-fn/menu.qc +++ b/src/menu-fn/menu.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ menupage_t g_mpage[] = { { menu_main_init, menu_main_draw, menu_main_input }, diff --git a/src/menu-fn/strings.h b/src/menu-fn/strings.h index 74e06e4e..a485dd27 100644 --- a/src/menu-fn/strings.h +++ b/src/menu-fn/strings.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ string m_reslbl[558]; diff --git a/src/menu-fn/strings.qc b/src/menu-fn/strings.qc index 3fbc4912..cc5fb12d 100644 --- a/src/menu-fn/strings.qc +++ b/src/menu-fn/strings.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Strings_Init(void) diff --git a/src/menu-fn/w_3dview.qc b/src/menu-fn/w_3dview.qc index 6eae2954..25cf0469 100644 --- a/src/menu-fn/w_3dview.qc +++ b/src/menu-fn/w_3dview.qc @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ noref .vector colormod; noref .vector angles; diff --git a/src/menu-fn/w_checkbox.qc b/src/menu-fn/w_checkbox.qc index 2867426a..8c75ce1f 100644 --- a/src/menu-fn/w_checkbox.qc +++ b/src/menu-fn/w_checkbox.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CCheckBox:CWidget { diff --git a/src/menu-fn/w_combobox.qc b/src/menu-fn/w_combobox.qc index 8d2d5f26..e361b6b7 100644 --- a/src/menu-fn/w_combobox.qc +++ b/src/menu-fn/w_combobox.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CComboBox:CWidget { diff --git a/src/menu-fn/w_dialog.qc b/src/menu-fn/w_dialog.qc index 3d2120c3..ba46902b 100644 --- a/src/menu-fn/w_dialog.qc +++ b/src/menu-fn/w_dialog.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CDialog:CWidget { diff --git a/src/menu-fn/w_frame.qc b/src/menu-fn/w_frame.qc index 847a26ee..301eecee 100644 --- a/src/menu-fn/w_frame.qc +++ b/src/menu-fn/w_frame.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CFrame:CWidget { diff --git a/src/menu-fn/w_header.qc b/src/menu-fn/w_header.qc index 931af2d1..febfbf92 100644 --- a/src/menu-fn/w_header.qc +++ b/src/menu-fn/w_header.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ string g_header_text[] = { "ADVANCED", diff --git a/src/menu-fn/w_label.qc b/src/menu-fn/w_label.qc index 373e0fdf..032daf6a 100644 --- a/src/menu-fn/w_label.qc +++ b/src/menu-fn/w_label.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CLabel:CWidget { diff --git a/src/menu-fn/w_listbox.qc b/src/menu-fn/w_listbox.qc index 145077b3..288d44a4 100644 --- a/src/menu-fn/w_listbox.qc +++ b/src/menu-fn/w_listbox.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define LB_MAX_ENTRIES 512 diff --git a/src/menu-fn/w_mainbutton.qc b/src/menu-fn/w_mainbutton.qc index 015267d5..268eb2c2 100644 --- a/src/menu-fn/w_mainbutton.qc +++ b/src/menu-fn/w_mainbutton.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enum { diff --git a/src/menu-fn/w_modlist.qc b/src/menu-fn/w_modlist.qc index f19bd888..4e371897 100644 --- a/src/menu-fn/w_modlist.qc +++ b/src/menu-fn/w_modlist.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* Those seem to be hardcoded? None of the default colors match */ #define ML_COL_1 [255,127,24] / 255 // Unselected Main diff --git a/src/menu-fn/w_pictureswitch.qc b/src/menu-fn/w_pictureswitch.qc index d01083fc..43da745a 100644 --- a/src/menu-fn/w_pictureswitch.qc +++ b/src/menu-fn/w_pictureswitch.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CPictureSwitch:CWidget { diff --git a/src/menu-fn/w_scrollbar.qc b/src/menu-fn/w_scrollbar.qc index a011c6db..df5bba03 100644 --- a/src/menu-fn/w_scrollbar.qc +++ b/src/menu-fn/w_scrollbar.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CScrollbar:CWidget { diff --git a/src/menu-fn/w_servers.qc b/src/menu-fn/w_servers.qc index 75251896..892a6d3d 100644 --- a/src/menu-fn/w_servers.qc +++ b/src/menu-fn/w_servers.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define SL_MAX_ENTRIES 512 diff --git a/src/menu-fn/w_slider.qc b/src/menu-fn/w_slider.qc index 22829057..28313da8 100644 --- a/src/menu-fn/w_slider.qc +++ b/src/menu-fn/w_slider.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CSlider:CWidget { diff --git a/src/menu-fn/w_textbox.qc b/src/menu-fn/w_textbox.qc index 501a1405..271cc3ac 100644 --- a/src/menu-fn/w_textbox.qc +++ b/src/menu-fn/w_textbox.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/menu-fn/w_textbuffer.qc b/src/menu-fn/w_textbuffer.qc index 4ff3ab7b..ad158283 100644 --- a/src/menu-fn/w_textbuffer.qc +++ b/src/menu-fn/w_textbuffer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define TB_MAX_ENTRIES 128 diff --git a/src/menu-fn/w_updatelist.qc b/src/menu-fn/w_updatelist.qc index 925faae2..6baf0e06 100644 --- a/src/menu-fn/w_updatelist.qc +++ b/src/menu-fn/w_updatelist.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* Those seem to be hardcoded? None of the default colors match */ #define ML_COL_1 [255,127,24] / 255 // Unselected Main diff --git a/src/menu-fn/widgets.qc b/src/menu-fn/widgets.qc index 85d25c7c..e4a7d508 100644 --- a/src/menu-fn/widgets.qc +++ b/src/menu-fn/widgets.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CWidget { diff --git a/src/menu-vgui/background.qc b/src/menu-vgui/background.qc index 331aaf96..7d29221a 100755 --- a/src/menu-vgui/background.qc +++ b/src/menu-vgui/background.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,38 +12,23 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ -#ifdef GAME_TW - #define BACKGROUND_IMG "textures/gfx/background" -#elif GAME_CS - #define BACKGROUND_IMG "textures/gfx/background" -#else - #define BACKGROUND_IMG "gfx/conback" -#endif +#define BACKGROUND_IMG "gfx/background" -var int g_iBackgroundLoaded = FALSE; - -void Background_Init ( void ) +void +Background_Init(void) { - precache_pic( BACKGROUND_IMG ); - - if ( iscachedpic( BACKGROUND_IMG ) ) { - g_iBackgroundLoaded = TRUE; - } + precache_pic(BACKGROUND_IMG); } -void Background_Draw ( vector vecSize ) +void +Background_Draw(vector vecSize) { - if ( clientstate() == 2 ) { + if (clientstate() == 2) { if (!g_background) - drawfill( [ 0, 0 ], vecSize, [ 0, 0, 0 ], 0.5f ); - } else { - if ( g_iBackgroundLoaded == TRUE ) { - drawpic( [ 0, 0 ], BACKGROUND_IMG, vecSize, [ 1, 1, 1 ], 1.0f ); - } else { - drawfill( [ 0, 0 ], vecSize, [ 0, 0, 0 ], 1.0f ); - drawfill( [ 0, 0 ], vecSize, UI_MAINCOLOR, 0.5f ); - } - } + drawfill([ 0, 0 ], vecSize, [ 0, 0, 0 ], 0.5f); + } else + drawpic([ 0, 0 ], BACKGROUND_IMG, vecSize, [ 1, 1, 1 ], 1.0f); + } diff --git a/src/menu-vgui/defs.h b/src/menu-vgui/defs.h index 97c770c8..b0c221e3 100755 --- a/src/menu-vgui/defs.h +++ b/src/menu-vgui/defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iMenuActive; vector video_res; diff --git a/src/menu-vgui/desktop.qc b/src/menu-vgui/desktop.qc index 5ca2923c..39adea4e 100755 --- a/src/menu-vgui/desktop.qc +++ b/src/menu-vgui/desktop.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Desktop_Init ( void ) { diff --git a/src/menu-vgui/loading.qc b/src/menu-vgui/loading.qc index 270e77c9..1c7d3752 100755 --- a/src/menu-vgui/loading.qc +++ b/src/menu-vgui/loading.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Loading_Draw ( vector vecSize ) { diff --git a/src/menu-vgui/main.h b/src/menu-vgui/main.h index 83456b6f..a3f40edc 100755 --- a/src/menu-vgui/main.h +++ b/src/menu-vgui/main.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,6 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ CUIWidget g_uiDesktop; diff --git a/src/menu-vgui/main.qc b/src/menu-vgui/main.qc index a048135d..5f4c46bb 100644 --- a/src/menu-vgui/main.qc +++ b/src/menu-vgui/main.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,9 +12,10 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int autocvar_r_autoscale = TRUE; + void Menu_AutoScale(void) { @@ -33,15 +34,16 @@ Menu_AutoScale(void) } } -void m_init ( void ) +void +m_init(void) { UISystem_Init(); Background_Init(); Desktop_Init(); - registercommand( "menu_quit" ); - registercommand( "menu_music" ); - registercommand( "map_background" ); + registercommand("menu_quit"); + registercommand("menu_music"); + registercommand("map_background"); Menu_AutoScale(); } @@ -52,12 +54,14 @@ Menu_RendererRestarted(string renderer) Menu_AutoScale(); } -void m_shutdown ( void ) +void +m_shutdown(void) { } -void m_draw ( vector vecScreensize ) +void +m_draw(vector vecScreensize) { if (vecScreensize != video_res) { Menu_AutoScale(); @@ -88,11 +92,12 @@ void m_draw ( vector vecScreensize ) lasttime = time; video_res = vecScreensize; - Background_Draw( vecScreensize ); + Background_Draw(vecScreensize); Desktop_Draw(); } -float Menu_InputEvent ( float evtype, float scanx, float chary, float devid ) +float +Menu_InputEvent (float evtype, float scanx, float chary, float devid) { switch (evtype) { case IE_KEYDOWN: @@ -105,8 +110,7 @@ float Menu_InputEvent ( float evtype, float scanx, float chary, float devid ) } g_vecMousePos = getmousepos(); - - g_uiDesktop.Input( evtype, scanx, chary, devid ); + g_uiDesktop.Input(evtype, scanx, chary, devid); return (float)g_iMenuActive; } @@ -141,19 +145,18 @@ m_toggle void m_toggle(float fMode) { - if (fMode == FALSE) { + if (fMode == FALSE) m_hide(); - } else { + else m_display(); - } } -float m_consolecommand ( string strCommand ) +float m_consolecommand(string strCommand) { - dprint( sprintf( "[MENU] m_consolecommand: %s\n", strCommand ) ); - tokenize( strCommand ); + dprint(sprintf("[MENU] m_consolecommand: %s\n", strCommand)); + tokenize(strCommand); - switch ( argv( 0 ) ) { + switch (argv(0)) { case "menu_quit": UI_QuitGame_Show(); break; diff --git a/src/menu-vgui/ui_console.qc b/src/menu-vgui/ui_console.qc index 8cfbc975..e6a1dc73 100755 --- a/src/menu-vgui/ui_console.qc +++ b/src/menu-vgui/ui_console.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iConsoleInitialized; diff --git a/src/menu-vgui/ui_createserver.qc b/src/menu-vgui/ui_createserver.qc index 82ae1cd7..394f9e62 100755 --- a/src/menu-vgui/ui_createserver.qc +++ b/src/menu-vgui/ui_createserver.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iCreateServerInitialized; diff --git a/src/menu-vgui/ui_fileopen.qc b/src/menu-vgui/ui_fileopen.qc index d0f755b1..bf76ef01 100755 --- a/src/menu-vgui/ui_fileopen.qc +++ b/src/menu-vgui/ui_fileopen.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iFindServersInitialized; diff --git a/src/menu-vgui/ui_findservers.qc b/src/menu-vgui/ui_findservers.qc index 66fedee0..dcd6186f 100755 --- a/src/menu-vgui/ui_findservers.qc +++ b/src/menu-vgui/ui_findservers.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iFindServersInitialized; diff --git a/src/menu-vgui/ui_modelviewer.qc b/src/menu-vgui/ui_modelviewer.qc index d590967d..6cd7b110 100644 --- a/src/menu-vgui/ui_modelviewer.qc +++ b/src/menu-vgui/ui_modelviewer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iModelViewerInitialized; diff --git a/src/menu-vgui/ui_musicplayer.qc b/src/menu-vgui/ui_musicplayer.qc index da012da4..73f7b9af 100755 --- a/src/menu-vgui/ui_musicplayer.qc +++ b/src/menu-vgui/ui_musicplayer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iMusicPlayerInitialized; diff --git a/src/menu-vgui/ui_newgame.qc b/src/menu-vgui/ui_newgame.qc index fa079fdc..d640e0e8 100755 --- a/src/menu-vgui/ui_newgame.qc +++ b/src/menu-vgui/ui_newgame.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iNewGameInitialized; diff --git a/src/menu-vgui/ui_quitgame.qc b/src/menu-vgui/ui_quitgame.qc index 17978bcc..88b08b7f 100755 --- a/src/menu-vgui/ui_quitgame.qc +++ b/src/menu-vgui/ui_quitgame.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int g_iQuitGameInitialized; diff --git a/src/platform/achievements.h b/src/platform/achievements.h index 5766bca6..90d58f50 100644 --- a/src/platform/achievements.h +++ b/src/platform/achievements.h @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ typedef struct { diff --git a/src/platform/achievements.qc b/src/platform/achievements.qc index a0716a21..c63f68fd 100644 --- a/src/platform/achievements.qc +++ b/src/platform/achievements.qc @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + /* unlock an achievement */ void Achievement_Set(string strName) diff --git a/src/platform/defs.h b/src/platform/defs.h index 1b5c3289..89fc2702 100644 --- a/src/platform/defs.h +++ b/src/platform/defs.h @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + #include "achievements.h" #include "master.h" #include "modserver.h" diff --git a/src/platform/master.h b/src/platform/master.h index 2a3ac246..33d94ffd 100644 --- a/src/platform/master.h +++ b/src/platform/master.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,8 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - +*/ #define MASTER_DNS "master.frag-net.com" #define MASTER_PORT 27950 diff --git a/src/platform/master.qc b/src/platform/master.qc index c9b2d6f0..6aa2ee20 100644 --- a/src/platform/master.qc +++ b/src/platform/master.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ string Master_Resolve(void) diff --git a/src/platform/modserver.h b/src/platform/modserver.h index 2a23d8ba..2f396063 100644 --- a/src/platform/modserver.h +++ b/src/platform/modserver.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifndef WEBMENU #define MODSERVER_REQ_LIST 100 diff --git a/src/platform/modserver.qc b/src/platform/modserver.qc index 844a884d..1c9497c1 100644 --- a/src/platform/modserver.qc +++ b/src/platform/modserver.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifndef WEBMENU void* diff --git a/src/platform/music.h b/src/platform/music.h index 8c0a4ab1..c1cb0977 100644 --- a/src/platform/music.h +++ b/src/platform/music.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* we're forced to support a few different paths */ enum diff --git a/src/platform/music.qc b/src/platform/music.qc index 7973cdc2..f97d4bcf 100644 --- a/src/platform/music.qc +++ b/src/platform/music.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* some installs may have the music in media/, others may be in music/ */ string diff --git a/src/platform/richpresence.h b/src/platform/richpresence.h index 05005d19..9d913376 100644 --- a/src/platform/richpresence.h +++ b/src/platform/richpresence.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,10 +12,10 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void RichPresence_Set(string strKey, string strValue); void RichPresence_DumpInfo(void); void RichPresence_Clear(void); -bool RichPresence_WasSet(void); \ No newline at end of file +bool RichPresence_WasSet(void); diff --git a/src/platform/richpresence.qc b/src/platform/richpresence.qc index 58363a6d..97992641 100644 --- a/src/platform/richpresence.qc +++ b/src/platform/richpresence.qc @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + /* extremely primitive rich presence stuff that'll be extended later down the line or something */ #define RICHPRESENCE_KEYS 2 @@ -50,4 +66,4 @@ bool RichPresence_WasSet(void) { return g_richpresence_set; -} \ No newline at end of file +} diff --git a/src/platform/servers.h b/src/platform/servers.h index 95af58f6..bf9acb3b 100644 --- a/src/platform/servers.h +++ b/src/platform/servers.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* returns if a given address is external */ int Server_IsLan(string address); diff --git a/src/platform/servers.qc b/src/platform/servers.qc index 37c39646..c6e53cb3 100644 --- a/src/platform/servers.qc +++ b/src/platform/servers.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int Server_IsLan(string address) diff --git a/src/platform/tcp.h b/src/platform/tcp.h index 95957044..8cc5941c 100644 --- a/src/platform/tcp.h +++ b/src/platform/tcp.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define TCP_BUFFER_LENGTH 32 diff --git a/src/platform/tcp.qc b/src/platform/tcp.qc index ba9c0450..b465da64 100644 --- a/src/platform/tcp.qc +++ b/src/platform/tcp.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int TCP_Connect(tcpinfo_t *in, string path) diff --git a/src/platform/util.h b/src/platform/util.h index 5ef84fa1..efc9c5c6 100644 --- a/src/platform/util.h +++ b/src/platform/util.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int Util_CheckMouse(int x, int y, int sx, int sy); diff --git a/src/platform/util.qc b/src/platform/util.qc index d8346132..16b841b0 100644 --- a/src/platform/util.qc +++ b/src/platform/util.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ int Util_CheckMouse(int x, int y, int sx, int sy) diff --git a/src/plugins/banner.qc b/src/plugins/banner.qc index 6854067c..091821a0 100755 --- a/src/plugins/banner.qc +++ b/src/plugins/banner.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "../shared/events.h" diff --git a/src/plugins/chatfilter.qc b/src/plugins/chatfilter.qc index 29e2b89d..b29bae9a 100755 --- a/src/plugins/chatfilter.qc +++ b/src/plugins/chatfilter.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int autocvar_chatplug_filter = 1; diff --git a/src/plugins/chatsounds.qc b/src/plugins/chatsounds.qc index 84e71e0d..84ba05a6 100644 --- a/src/plugins/chatsounds.qc +++ b/src/plugins/chatsounds.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* our sound boogeyman */ static entity emitter; diff --git a/src/plugins/connectsounds.qc b/src/plugins/connectsounds.qc index 90af6061..54ae38e2 100755 --- a/src/plugins/connectsounds.qc +++ b/src/plugins/connectsounds.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ entity g_cnspk; diff --git a/src/plugins/ircbridge.qc b/src/plugins/ircbridge.qc index 29a804b3..4e0c9a42 100644 --- a/src/plugins/ircbridge.qc +++ b/src/plugins/ircbridge.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "../platform/tcp.h" #include "../platform/tcp.qc" diff --git a/src/plugins/voxannouncer.qc b/src/plugins/voxannouncer.qc index c8deb832..08184d40 100644 --- a/src/plugins/voxannouncer.qc +++ b/src/plugins/voxannouncer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "../shared/events.h" diff --git a/src/server/client.qc b/src/server/client.qc index ec9e73b1..38953e8c 100644 --- a/src/server/client.qc +++ b/src/server/client.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/server/entry.qc b/src/server/entry.qc index 8cda9efa..ed54621b 100644 --- a/src/server/entry.qc +++ b/src/server/entry.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/server/footsteps.qc b/src/server/footsteps.qc index 4aea42e6..8c09375a 100755 --- a/src/server/footsteps.qc +++ b/src/server/footsteps.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/server/gamerules.qc b/src/server/gamerules.qc index 931f5a76..78d21df3 100644 --- a/src/server/gamerules.qc +++ b/src/server/gamerules.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var bool autocvar_sv_friendlyFire = false; diff --git a/src/server/hlmaterials.qc b/src/server/hlmaterials.qc index 7ec22b1a..69215e67 100644 --- a/src/server/hlmaterials.qc +++ b/src/server/hlmaterials.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* FIXME: world.... sigh, we should box this into a worldspawn class */ .string materials_file; diff --git a/src/server/logging.qc b/src/server/logging.qc index e616bc16..c27e0f98 100644 --- a/src/server/logging.qc +++ b/src/server/logging.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void Logging_Frag(entity a, entity v) diff --git a/src/server/mapcycle.qc b/src/server/mapcycle.qc index 76e95801..a4acc2d4 100644 --- a/src/server/mapcycle.qc +++ b/src/server/mapcycle.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var int autocvar_mapcycle_enabled = TRUE; var string autocvar_mapcycle_file = "mapcycle.txt"; diff --git a/src/server/modelevent.qc b/src/server/modelevent.qc index 38c36677..699bdcb5 100644 --- a/src/server/modelevent.qc +++ b/src/server/modelevent.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/server/nodes.qc b/src/server/nodes.qc index 860ada32..f7676aff 100644 --- a/src/server/nodes.qc +++ b/src/server/nodes.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* write current nodes to disk */ void diff --git a/src/server/plugins.qc b/src/server/plugins.qc index e5a781b9..c6de6de3 100644 --- a/src/server/plugins.qc +++ b/src/server/plugins.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ typedef struct { diff --git a/src/server/sentences.qc b/src/server/sentences.qc index e39e6b62..8b852795 100644 --- a/src/server/sentences.qc +++ b/src/server/sentences.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* voice sentence samples for AI and other triggers that are supposed to talk. * the formatting is messy as hell and I feel dirty for even bothering with all diff --git a/src/server/skill.qc b/src/server/skill.qc index fc51ec1d..f892768c 100644 --- a/src/server/skill.qc +++ b/src/server/skill.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/server/spawn.qc b/src/server/spawn.qc index 1f63fd8d..b5acc427 100644 --- a/src/server/spawn.qc +++ b/src/server/spawn.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* ================= diff --git a/src/server/traceattack.qc b/src/server/traceattack.qc index 296c8cae..5a91def7 100644 --- a/src/server/traceattack.qc +++ b/src/server/traceattack.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void NSTraceAttack::_ApplyDamage(void) diff --git a/src/server/vote.qc b/src/server/vote.qc index a03f3af9..17c38a6e 100644 --- a/src/server/vote.qc +++ b/src/server/vote.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ var string g_strVoteCmd; var float g_flVoteTime; diff --git a/src/server/weapons.qc b/src/server/weapons.qc index 46606e98..7026317a 100644 --- a/src/server/weapons.qc +++ b/src/server/weapons.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* force the drawing of the first weapon that's picked up */ var int autocvar_sv_forceweapondraw = TRUE; diff --git a/src/shared/NSClient.h b/src/shared/NSClient.h index f1e92461..4dac11ba 100644 --- a/src/shared/NSClient.h +++ b/src/shared/NSClient.h @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + /* both NSClientPlayer and base_NSClientSpectator are based off this class */ class NSClient:NSSurfacePropEntity diff --git a/src/shared/NSClient.qc b/src/shared/NSClient.qc index dc53cfd0..5ba2a0f3 100644 --- a/src/shared/NSClient.qc +++ b/src/shared/NSClient.qc @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + void NSClient::OnRemoveEntity(void) { diff --git a/src/shared/NSClientPlayer.h b/src/shared/NSClientPlayer.h index 3a9dd8ac..8ad2cd1b 100644 --- a/src/shared/NSClientPlayer.h +++ b/src/shared/NSClientPlayer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class NSClientPlayer:NSClientSpectator diff --git a/src/shared/NSClientPlayer.qc b/src/shared/NSClientPlayer.qc index 67e762ad..261ecb14 100644 --- a/src/shared/NSClientPlayer.qc +++ b/src/shared/NSClientPlayer.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ bool NSClientPlayer::IsRealSpectator(void) diff --git a/src/shared/NSClientSpectator.h b/src/shared/NSClientSpectator.h index c9e8f64c..20c75212 100644 --- a/src/shared/NSClientSpectator.h +++ b/src/shared/NSClientSpectator.h @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + typedef enumflags { SPECFL_ORIGIN, diff --git a/src/shared/NSClientSpectator.qc b/src/shared/NSClientSpectator.qc index 9979d3b1..28f1e1da 100644 --- a/src/shared/NSClientSpectator.qc +++ b/src/shared/NSClientSpectator.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,8 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - +*/ bool NSClientSpectator::IsRealSpectator(void) diff --git a/src/shared/NSMaterial.h b/src/shared/NSMaterial.h index 1f067ed5..a134262d 100644 --- a/src/shared/NSMaterial.h +++ b/src/shared/NSMaterial.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class NSMaterial diff --git a/src/shared/NSMaterial.qc b/src/shared/NSMaterial.qc index 44ec99ba..440a9de7 100644 --- a/src/shared/NSMaterial.qc +++ b/src/shared/NSMaterial.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void NSMaterial::NSMaterial(void) @@ -21,6 +21,10 @@ NSMaterial::NSMaterial(void) m_bFootsteps = false; m_flFriction = 1.0f; m_strStepSound = "step.default"; + + /* no need to be around */ + think = Util_Destroy; + nextthink = time + 0.25f; } float @@ -104,6 +108,7 @@ Materials_LoadFromMat(string filename) if (command == "material") { hash_add(g_hashMaterials, materialname, parameters); print(sprintf("added Material %S type %S\n", materialname, parameters)); + break; } } } diff --git a/src/shared/colors.h b/src/shared/colors.h index 7f79cc02..683f9a78 100644 --- a/src/shared/colors.h +++ b/src/shared/colors.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ string Colors_RGB8_to_HEX(vector color) @@ -54,4 +54,4 @@ string Colors_RGB255_to_HEX(vector color) { return Colors_RGB8_to_HEX(color / 255); -} \ No newline at end of file +} diff --git a/src/shared/damage.h b/src/shared/damage.h index 5271ac80..d4bf6439 100644 --- a/src/shared/damage.h +++ b/src/shared/damage.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ typedef enumflags { @@ -20,7 +20,7 @@ typedef enumflags DMG_CRUSH, DMG_BULLET, DMG_SLASH, - DMG_FREEZE, + DMG_FREEZE, DMG_BURN, DMG_VEHICLE, DMG_FALL, @@ -43,5 +43,5 @@ typedef enumflags DMG_SKIP_ARMOR, DMG_SKIP_RAGDOLL } damageType_t; - -#define DMG_ACID DMG_CHEMICAL \ No newline at end of file + +#define DMG_ACID DMG_CHEMICAL diff --git a/src/shared/defs.h b/src/shared/defs.h index c2f10758..66ffe068 100644 --- a/src/shared/defs.h +++ b/src/shared/defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* networking helpers */ #define PREDICTED_INT(x) int x; int x ##_net @@ -186,6 +186,18 @@ precache_model(string m) return prior(m); } +__wrap string +precache_sound(string sample) +{ + if (sample != "") /* not empty */ + if not(whichpack(strcat("sound/", sample))) { /* not present on disk */ + print(strcat("^1sfx sample ", sample, " does not exist!\n")); + return "misc/missing.wav"; + } + + return prior(sample); +} + /* this could probably be a lot better, use this from now on so that it can be improved later */ noref float input_sequence; float diff --git a/src/shared/entities.h b/src/shared/entities.h index 64cba686..005ebfb7 100644 --- a/src/shared/entities.h +++ b/src/shared/entities.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* entity update identifiers */ enum diff --git a/src/shared/events.h b/src/shared/events.h index 61d290fa..abb358b1 100644 --- a/src/shared/events.h +++ b/src/shared/events.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* one-time network events */ enum diff --git a/src/shared/flags.h b/src/shared/flags.h index 6d96ecea..e7ef9947 100644 --- a/src/shared/flags.h +++ b/src/shared/flags.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* engine reserved */ #define FL_FLY (1<<0) diff --git a/src/shared/global.h b/src/shared/global.h index 99aab406..8b9bf9c4 100644 --- a/src/shared/global.h +++ b/src/shared/global.h @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + void _NSLog(string msg) { @@ -14,4 +30,4 @@ enumflags SEARCH_FORCESEARCH, SEARCH_MULTISEARCH, SEARCH_NAMESORT -}; \ No newline at end of file +}; diff --git a/src/shared/hitmesh.h b/src/shared/hitmesh.h index 385c486f..ca544c90 100644 --- a/src/shared/hitmesh.h +++ b/src/shared/hitmesh.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* global hitmesh definitions */ typedef enum diff --git a/src/shared/materials.h b/src/shared/materials.h index c4aa5be4..c5dd4034 100644 --- a/src/shared/materials.h +++ b/src/shared/materials.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ // Impact types typedef enum diff --git a/src/shared/math.h b/src/shared/math.h index fe6528f0..09a9c422 100644 --- a/src/shared/math.h +++ b/src/shared/math.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define MATH_PI 3.1415926 diff --git a/src/shared/math.qc b/src/shared/math.qc index 7409a66b..cc5ae53f 100644 --- a/src/shared/math.qc +++ b/src/shared/math.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* lerping function that accounts for negative degrees */ float diff --git a/src/shared/memory.h b/src/shared/memory.h index fd576cfd..6e182ad8 100644 --- a/src/shared/memory.h +++ b/src/shared/memory.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void* memrealloc(__variant *oldptr, int elementsize, int oldelements, int newelements) diff --git a/src/shared/platform.h b/src/shared/platform.h index 3bd32baf..c2fa1e87 100644 --- a/src/shared/platform.h +++ b/src/shared/platform.h @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ typedef enum { diff --git a/src/shared/player_pmove.qc b/src/shared/player_pmove.qc index b030a5e9..798a70f4 100644 --- a/src/shared/player_pmove.qc +++ b/src/shared/player_pmove.qc @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2016-2022 Vera Visions LLC. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ vector saved_input_movevalues; int saved_input_buttons; diff --git a/src/shared/pmove.h b/src/shared/pmove.h index cc2d627b..5be8f395 100644 --- a/src/shared/pmove.h +++ b/src/shared/pmove.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ .float waterlevel; .float watertype; diff --git a/src/shared/pmove.qc b/src/shared/pmove.qc index a6dd2e55..6a6c12df 100644 --- a/src/shared/pmove.qc +++ b/src/shared/pmove.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #define CUSTOMPLAYERPHYSICS diff --git a/src/shared/pmove_custom.qc b/src/shared/pmove_custom.qc index 58eb5649..77acd107 100644 --- a/src/shared/pmove_custom.qc +++ b/src/shared/pmove_custom.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef CUSTOMPLAYERPHYSICS void diff --git a/src/shared/propdata.h b/src/shared/propdata.h index c589d603..eab1e2da 100644 --- a/src/shared/propdata.h +++ b/src/shared/propdata.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* Prop-Data specs diff --git a/src/shared/propdata.qc b/src/shared/propdata.qc index 2c786520..edbbc950 100644 --- a/src/shared/propdata.qc +++ b/src/shared/propdata.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* #define PROPDATA_DYNAMIC diff --git a/src/shared/sound.h b/src/shared/sound.h index 50064d52..ec54aa74 100644 --- a/src/shared/sound.h +++ b/src/shared/sound.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ .float maxspeed; .float flags; diff --git a/src/shared/sound.qc b/src/shared/sound.qc index 1f15882f..bbe765d1 100644 --- a/src/shared/sound.qc +++ b/src/shared/sound.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void(vector origin, string sample, float volume, float attenuation, float pitch) pointsound_proper = #483; @@ -289,6 +289,7 @@ Sound_Precache(string shader) #else if (g_sounds_count >= SOUNDSHADER_MAX) { error(sprintf("Sound_Precache: Reached SOUNDSHADER_MAX (%d)\n", SOUNDSHADER_MAX)); + return -1; } #endif @@ -345,11 +346,8 @@ Sound_Distance(entity target, string shader) sample = (int)hash_get(g_hashsounds, shader, -1); if (sample < 0) { -#ifdef SERVER - print(sprintf("^1Sound_Distance: shader %s is not precached (SERVER)\n", shader)); -#else - print(sprintf("^1Sound_Distance: shader %s is not precached (CLIENT)\n", shader)); -#endif + crossprint(sprintf("^1Sound_Distance: shader %s is not precached\n", shader)); + return; } /* pick a sample */ @@ -411,11 +409,8 @@ Sound_DistancePos(vector pos, string shader) sample = (int)hash_get(g_hashsounds, shader, -1); if (sample < 0) { -#ifdef SERVER - print(sprintf("^1Sound_DistancePos: shader %s is not precached (SERVER)\n", shader)); -#else - print(sprintf("^1Sound_DistancePos: shader %s is not precached (CLIENT)\n", shader)); -#endif + crossprint(sprintf("^1Sound_DistancePos: shader %s is not precached (SERVER)\n", shader)); + return; } /* pick a sample */ @@ -472,7 +467,6 @@ Sound_Play(entity target, int chan, string shader) if (sample < 0) { crossprint(sprintf("^1Sound_Play: shader %s is not precached\n", shader)); - sound(target, chan, "misc/missing.wav", 1.0f, ATTN_NORM); return; } @@ -588,7 +582,6 @@ Sound_PlayAt(vector pos, string shader) if (sample < 0) { crossprint(sprintf("^1Sound_PlayAt: shader %s is not precached\n", shader)); - pointsound(pos, "misc/missing.wav", 1.0f, ATTN_NORM); return; } @@ -645,7 +638,6 @@ Sound_PlayLocal(string shader) if (sample < 0) { crossprint(sprintf("^1Sound_PlayLocal: shader %s is not precached\n", shader)); - localsound("misc/missing.wav"); return; } @@ -722,11 +714,7 @@ Sound_Speak(entity target, string shader) sample = (int)hash_get(g_hashsounds, shader, -1); if (sample < 0) { -#ifdef SERVER - print(sprintf("^1Sound_Speak: shader %s is not precached (SERVER)\n", shader)); -#else - print(sprintf("^1Sound_Speak: shader %s is not precached (CLIENT)\n", shader)); -#endif + crossprint(sprintf("^1Sound_Speak: shader %s is not precached (SERVER)\n", shader)); return; } diff --git a/src/shared/surfaceproperties.h b/src/shared/surfaceproperties.h index 855ed0bc..516df7e1 100644 --- a/src/shared/surfaceproperties.h +++ b/src/shared/surfaceproperties.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* Surface Data Specs diff --git a/src/shared/surfaceproperties.qc b/src/shared/surfaceproperties.qc index 41bd8eee..e94690cf 100644 --- a/src/shared/surfaceproperties.qc +++ b/src/shared/surfaceproperties.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef SERVER float HLMaterials_Fetch(string); diff --git a/src/vgui/ui.qc b/src/vgui/ui.qc index e1cf4416..d74a195a 100644 --- a/src/vgui/ui.qc +++ b/src/vgui/ui.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ font_s g_fntDefault; var int g_vguiWidgetCount; diff --git a/src/vgui/ui_3dview.qc b/src/vgui/ui_3dview.qc index 97903b15..383a772d 100644 --- a/src/vgui/ui_3dview.qc +++ b/src/vgui/ui_3dview.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ noref .vector origin; noref .vector angles; diff --git a/src/vgui/ui_button.qc b/src/vgui/ui_button.qc index c267612a..9f84347d 100644 --- a/src/vgui/ui_button.qc +++ b/src/vgui/ui_button.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/vgui/ui_checkbox.qc b/src/vgui/ui_checkbox.qc index e1243c5a..83844bc5 100644 --- a/src/vgui/ui_checkbox.qc +++ b/src/vgui/ui_checkbox.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/vgui/ui_label.qc b/src/vgui/ui_label.qc index acfbb9f0..5143f3b8 100644 --- a/src/vgui/ui_label.qc +++ b/src/vgui/ui_label.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CUILabel:CUIWidget { diff --git a/src/vgui/ui_list.qc b/src/vgui/ui_list.qc index 5b5cc146..e71f29a5 100644 --- a/src/vgui/ui_list.qc +++ b/src/vgui/ui_list.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CUIList:CUIWidget { diff --git a/src/vgui/ui_listbox.qc b/src/vgui/ui_listbox.qc index 501e95bf..b450c286 100644 --- a/src/vgui/ui_listbox.qc +++ b/src/vgui/ui_listbox.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CUIListBox:CUIWidget { diff --git a/src/vgui/ui_menubutton.qc b/src/vgui/ui_menubutton.qc index 84705c35..2ad077a5 100644 --- a/src/vgui/ui_menubutton.qc +++ b/src/vgui/ui_menubutton.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #ifdef MENU enumflags diff --git a/src/vgui/ui_pic.qc b/src/vgui/ui_pic.qc index e81b6c7d..2d50cdae 100644 --- a/src/vgui/ui_pic.qc +++ b/src/vgui/ui_pic.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/vgui/ui_radio.qc b/src/vgui/ui_radio.qc index 11a3c300..ec0cc954 100644 --- a/src/vgui/ui_radio.qc +++ b/src/vgui/ui_radio.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/vgui/ui_scrollbar.qc b/src/vgui/ui_scrollbar.qc index 3c2f9ff8..ef8aee54 100644 --- a/src/vgui/ui_scrollbar.qc +++ b/src/vgui/ui_scrollbar.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/vgui/ui_slider.qc b/src/vgui/ui_slider.qc index 761f488f..7643a84a 100644 --- a/src/vgui/ui_slider.qc +++ b/src/vgui/ui_slider.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/vgui/ui_tabview.qc b/src/vgui/ui_tabview.qc index 186731b8..88b2f856 100644 --- a/src/vgui/ui_tabview.qc +++ b/src/vgui/ui_tabview.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ class CUITabView:CUIWidget { diff --git a/src/vgui/ui_textbox.qc b/src/vgui/ui_textbox.qc index ce0f11c3..abed6542 100644 --- a/src/vgui/ui_textbox.qc +++ b/src/vgui/ui_textbox.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/vgui/ui_window.qc b/src/vgui/ui_window.qc index 6c6b913e..1eafb589 100644 --- a/src/vgui/ui_window.qc +++ b/src/vgui/ui_window.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ enumflags { diff --git a/src/xr/NSXRInput.h b/src/xr/NSXRInput.h index fef35b49..bdf41904 100644 --- a/src/xr/NSXRInput.h +++ b/src/xr/NSXRInput.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ typedef enum { @@ -56,4 +56,4 @@ NSXRInput virtual void(void) InputFrame; virtual void(void) PrintInfo; -}; \ No newline at end of file +}; diff --git a/src/xr/NSXRInput.qc b/src/xr/NSXRInput.qc index 93193210..50ab08a6 100644 --- a/src/xr/NSXRInput.qc +++ b/src/xr/NSXRInput.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ vector NSXRInput::GetOrigin(void) @@ -162,4 +162,4 @@ NSXRInput::PrintInfo(void) void NSXRInput::NSXRInput(void) { -} \ No newline at end of file +} diff --git a/src/xr/NSXRSpace.h b/src/xr/NSXRSpace.h index 2f177b49..8b63b582 100644 --- a/src/xr/NSXRSpace.h +++ b/src/xr/NSXRSpace.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* class handling the room to world translations for XR */ class @@ -34,4 +34,4 @@ NSXRSpace virtual vector(vector) RoomToWorldOrigin; virtual vector(vector) RoomToWorldAngles; -}; \ No newline at end of file +}; diff --git a/src/xr/NSXRSpace.qc b/src/xr/NSXRSpace.qc index a39c7254..010d18a2 100644 --- a/src/xr/NSXRSpace.qc +++ b/src/xr/NSXRSpace.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ vector NSXRSpace::GetForward(void) @@ -69,4 +69,4 @@ NSXRSpace::SetAngles(vector vecAngles) void NSXRSpace::NSXRSpace(void) { -} \ No newline at end of file +} diff --git a/src/xr/defs.h b/src/xr/defs.h index 9b9019ec..5c19fbd8 100644 --- a/src/xr/defs.h +++ b/src/xr/defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ #include "NSXRSpace.h" #include "NSXRInput.h" diff --git a/src/xr/xr.h b/src/xr/xr.h index 6e981761..54426d14 100644 --- a/src/xr/xr.h +++ b/src/xr/xr.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ void XR_Init(entity); void XR_Shutdown(entity); @@ -24,4 +24,4 @@ void XR_UpdateView(entity); #endif var float autocvar_xr_roomscale = 1.0f; -var float autocvar_xr_viewheight = -48.0f; \ No newline at end of file +var float autocvar_xr_viewheight = -48.0f; diff --git a/src/xr/xr.qc b/src/xr/xr.qc index c8e69cd5..86b77be2 100644 --- a/src/xr/xr.qc +++ b/src/xr/xr.qc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022 Marco Cawthorne + * Copyright (c) 2016-2022 Vera Visions LLC. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -12,7 +12,7 @@ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ +*/ /* The engine provides us with 3 devices right now, each giving us