Mircea Kitsune [Sat, 29 Oct 2011 19:51:44 +0000 (22:51 +0300)]
And now for something a little different: No longer use a string for the clipboard, but a client-side cvar. This offers many new possibilities... such as multiple clipboards, object presets and shortcuts, exporting objects and posting them online (forum, twitter, etc), and using the clipboard between servers. eg: Say you see an object you can copy, and wanna put it on your server. Just copy it from the Sandbox menu, disconnect, connect to your server, and paste. Your object will be there :)
Mircea Kitsune [Sat, 29 Oct 2011 16:18:15 +0000 (19:18 +0300)]
Fix something I forgot, storage works again
Mircea Kitsune [Sat, 29 Oct 2011 16:11:41 +0000 (19:11 +0300)]
Simplify physics saving code
Mircea Kitsune [Sat, 29 Oct 2011 16:08:19 +0000 (19:08 +0300)]
Re-implement remembering of old movetype for objects, and also persist it in storage. For example: If you set an object to MOVETYPE_PHYSICAL, attach it to another object (during which it becomes MOVETYPE_FOLLOW), restart the server, then go back and detach the object, it will know to go back to MOVETYPE_PHYSICAL. This does not add any extra info, as movetype was already added to the storage for child objects, and was useless before this.
Mircea Kitsune [Sat, 29 Oct 2011 15:44:23 +0000 (18:44 +0300)]
Don't store origin and angles at all for child objects. Storage functional again. Note that this breaks previous storages
Mircea Kitsune [Sat, 29 Oct 2011 14:48:18 +0000 (17:48 +0300)]
Storage: Only store attachment bone info for child objects, not parents. This currently breaks the storage, as another change must follow
Mircea Kitsune [Sat, 29 Oct 2011 13:55:23 +0000 (16:55 +0300)]
Get and persist bone names properly. Objects attached to other object's bones will be now stored and loaded properly, for both clipboard and database.
Mircea Kitsune [Sat, 29 Oct 2011 13:35:24 +0000 (16:35 +0300)]
Storage save: Persist all strings between quotation marks. This allows models, materials, and bones with spaces in their names to be persisted properly
Mircea Kitsune [Sat, 29 Oct 2011 13:29:46 +0000 (16:29 +0300)]
Storage: Add support for persisting bones, and attaching back to them for objects that are pasted and loaded to / from database. Not tested yet
Mircea Kitsune [Sat, 29 Oct 2011 13:16:59 +0000 (16:16 +0300)]
Detach objects at exactly the same origin, not the origin of the parent. Angles however are reset to the parent's, so that detached objects don't spin or roll
Mircea Kitsune [Sat, 29 Oct 2011 12:54:19 +0000 (15:54 +0300)]
Sandbox menu: Send all strings with quotation marks around them. This allows specifying spaces in them, such as the "bip01 r hand" bone
Mircea Kitsune [Sat, 29 Oct 2011 11:23:37 +0000 (14:23 +0300)]
Fix menu bug again lol
Mircea Kitsune [Sat, 29 Oct 2011 11:20:42 +0000 (14:20 +0300)]
Fix a menu bug using the wrong cvar for attachment bone
Mircea Kitsune [Sat, 29 Oct 2011 11:14:07 +0000 (14:14 +0300)]
Ah, it seems tag counting should start from 1
Mircea Kitsune [Sat, 29 Oct 2011 11:10:54 +0000 (14:10 +0300)]
Document object_info in the helper
Mircea Kitsune [Sat, 29 Oct 2011 11:08:27 +0000 (14:08 +0300)]
edit rights = copy rights now for copying
Mircea Kitsune [Sat, 29 Oct 2011 11:05:55 +0000 (14:05 +0300)]
New functionality for g_sandbox_editor_free. 0 = players can only copy or edit their own objects, 1 = players can copy but not edit other objects, 2 = players can copy and edit all object. Default is now 1 (you can duplicate other people's objects but not edit them).
Mircea Kitsune [Sat, 29 Oct 2011 10:59:06 +0000 (13:59 +0300)]
Name the info command "mesh", and allow it to list both model, andimation frame, and tags. People can then know the model and frame of any object, which can be helpful with building
Mircea Kitsune [Sat, 29 Oct 2011 10:48:51 +0000 (13:48 +0300)]
Add a command which allows printing tag information of a model to the player
Mircea Kitsune [Sat, 29 Oct 2011 09:48:28 +0000 (12:48 +0300)]
Add an object_info command, which will print some information about the object later on. Also do some other code arrangements
Mircea Kitsune [Fri, 28 Oct 2011 23:46:56 +0000 (02:46 +0300)]
Add a TODO for persisting bones, and code comments explaining how the array storage works
Mircea Kitsune [Fri, 28 Oct 2011 23:26:32 +0000 (02:26 +0300)]
Get storage loading to use arrays too. Attached objects will be saved in storage, but object can also be copied / pasted with their attachments now. Bones are not saved yet, and will be done tomorrow
Mircea Kitsune [Fri, 28 Oct 2011 23:09:41 +0000 (02:09 +0300)]
At the expense of the developer's sanity, get the save system working with arrays. Also fix a code typo that was always there, making the storage get saved each frame. By default, storage is saved every 5 seconds
Mircea Kitsune [Fri, 28 Oct 2011 20:54:39 +0000 (23:54 +0300)]
Add a code comment about how the string works. Clipboard and database seem to be fully functional now. divVerent won't let me tokenize tokens though, so I need to change implementation to something less hackish.
Mircea Kitsune [Fri, 28 Oct 2011 20:47:13 +0000 (23:47 +0300)]
Fix the bug with multiple objects without a model being spawned from storage
Mircea Kitsune [Fri, 28 Oct 2011 20:30:12 +0000 (23:30 +0300)]
Attempt to make loaded child objects attached. Code is buggy any currently breaks storage, so switch to this commit only if you're ok with that
Mircea Kitsune [Fri, 28 Oct 2011 20:23:56 +0000 (23:23 +0300)]
Teach the loading code to load multiple objects from one line, by tokenizing the argument of another token. Objects aren't attached yet however
Mircea Kitsune [Fri, 28 Oct 2011 19:49:02 +0000 (22:49 +0300)]
Attempt to persist attached objects in storage and clipboard, part 1: Store child objects in the same line as their parent object. Objects are separated by the ; symbol.
Mircea Kitsune [Fri, 28 Oct 2011 19:09:34 +0000 (22:09 +0300)]
Don't allow attaching to attachments, for obvious reasons. Also don't persist the movetype of attachments, as it will not work with that I'm going to implement next (restore default physics when detaching an object)
Mircea Kitsune [Fri, 28 Oct 2011 16:11:08 +0000 (19:11 +0300)]
Precache material sounds for objects that are loaded from database
Mircea Kitsune [Fri, 28 Oct 2011 16:04:32 +0000 (19:04 +0300)]
Print more information to the first line of the storage time, including the date and time when the file was last updated
Mircea Kitsune [Fri, 28 Oct 2011 15:48:57 +0000 (18:48 +0300)]
Add a name cvar for storage. That way, people can select between multiple storages. If * is that cvar, storage files are named sandbox/storage_*_mapname.txt
Mircea Kitsune [Fri, 28 Oct 2011 15:36:23 +0000 (18:36 +0300)]
Rename more functions, and add server notification messages for database loading
Mircea Kitsune [Fri, 28 Oct 2011 15:23:12 +0000 (18:23 +0300)]
Actually, do update the database when there are no objects. Otherwise deleting all objects would no longer update it
Mircea Kitsune [Fri, 28 Oct 2011 15:21:42 +0000 (18:21 +0300)]
Rename several functions
Mircea Kitsune [Fri, 28 Oct 2011 15:02:31 +0000 (18:02 +0300)]
Remove an abandoned float
Mircea Kitsune [Fri, 28 Oct 2011 15:01:59 +0000 (18:01 +0300)]
Remove debug code. Saving and loading from text files should be fully functional now. When starting the same map, you will find your objects just as you left them :)
Mircea Kitsune [Fri, 28 Oct 2011 14:58:42 +0000 (17:58 +0300)]
Store empty properties as - in the clipboard. Otherwise stuff breaks, as tokenize_console cannot read between two spaces
Mircea Kitsune [Fri, 28 Oct 2011 14:07:44 +0000 (17:07 +0300)]
Apply the objects in the text file to the world. Partly works, but a few bugs still exist.
Mircea Kitsune [Fri, 28 Oct 2011 13:57:11 +0000 (16:57 +0300)]
Remove object* at the beginning of each line. Hard to do the tokenizing / substringing for that, and it doesn't make any sense either
Mircea Kitsune [Fri, 28 Oct 2011 13:51:14 +0000 (16:51 +0300)]
Basic implementation for reading sandbox storage files. Currently, it just prints each line to the console. Also add an autoload cvar, which will make objects be automatically loaded at startup
Mircea Kitsune [Fri, 28 Oct 2011 13:22:56 +0000 (16:22 +0300)]
Begin each line with object*, where * is the number of the object. Databese saving can be considered complete. Next comes the reading
Mircea Kitsune [Fri, 28 Oct 2011 13:16:37 +0000 (16:16 +0300)]
Add a comment line with information to the save file
Mircea Kitsune [Fri, 28 Oct 2011 13:09:22 +0000 (16:09 +0300)]
Properly store map name in the text file
Mircea Kitsune [Fri, 28 Oct 2011 13:05:58 +0000 (16:05 +0300)]
Don't persist attached objects for now. They would only be spawned at origin '0 0 0' and wouldn't work. We must find some way to fix this eventually!
Mircea Kitsune [Fri, 28 Oct 2011 12:58:27 +0000 (15:58 +0300)]
First part of storing objects to text files, using the autosave feature. Not working properly yet. I also don't know how I'm gonna store attachments to this =(
Mircea Kitsune [Fri, 28 Oct 2011 12:22:43 +0000 (15:22 +0300)]
Merge branch 'master' into mirceakitsune/sandbox
Mircea Kitsune [Fri, 28 Oct 2011 12:22:00 +0000 (15:22 +0300)]
Add cvars for autosave, which will be used by the upcoming storage system
Mircea Kitsune [Fri, 28 Oct 2011 12:21:22 +0000 (15:21 +0300)]
New mutator hook SV_StartFrame, executing globally each server frame. Will be used later on by the sandbox code
Mircea Kitsune [Thu, 27 Oct 2011 22:28:51 +0000 (01:28 +0300)]
Also print information about attaching and detaching objects when g_sandbox_info > 1
Mircea Kitsune [Thu, 27 Oct 2011 22:19:03 +0000 (01:19 +0300)]
Add a help button to the menu, and size the menu properly
Mircea Kitsune [Thu, 27 Oct 2011 22:03:25 +0000 (01:03 +0300)]
Remove a useless spacing. IT DIDN'T LOOK PERFECT, THE CODE WAS FLAWED!
Mircea Kitsune [Thu, 27 Oct 2011 22:00:26 +0000 (01:00 +0300)]
Remove code for spawning items. I didn't like its implementation, it would only work for weapons, and the focus of the sandbox is currently on objects
Mircea Kitsune [Thu, 27 Oct 2011 21:58:25 +0000 (00:58 +0300)]
g_sandbox_info - Print information about spawned / removed objects when 1, and also about edited objects when 2
Mircea Kitsune [Thu, 27 Oct 2011 21:47:28 +0000 (00:47 +0300)]
Divide sandbox messages in three categories, and color each accordingly: INFO (tells unimportant stuff to the player), WARNING (tells important stuff to the player) and server (information about spawned objects printed to the server when g_sandbox_info is enabled)
Mircea Kitsune [Thu, 27 Oct 2011 21:32:17 +0000 (00:32 +0300)]
If removing an object that contains attachments, detach child objects first
Mircea Kitsune [Thu, 27 Oct 2011 21:28:12 +0000 (00:28 +0300)]
Rename action_object commands to object_action, because that's more correct
Mircea Kitsune [Thu, 27 Oct 2011 21:22:14 +0000 (00:22 +0300)]
Merge duplicate_object_copy and duplicate_object_paste into a single duplicate_object command, with copy and paste as arguments
Mircea Kitsune [Thu, 27 Oct 2011 21:09:09 +0000 (00:09 +0300)]
New command: claim_object. If the player has edit rights over an object (either free editing is enabled, or the object was spawned by a player without an UID), the player can claim the object as his with this command.
Mircea Kitsune [Thu, 27 Oct 2011 20:52:22 +0000 (23:52 +0300)]
Unfortunately, my previous change makes it impossible to track the object count of each player. Therefore, turn the object limit into a global float, and default it to 1000. My only concern about this is that a griefer can spawn objects up to the limit, and prevent other players from building on the server due to that. Not an urgent problem, but to be given thought.
Mircea Kitsune [Thu, 27 Oct 2011 20:46:01 +0000 (23:46 +0300)]
Since objects are going to be persisted, no longer set the owner as an entity. Object owner is set via player UID (key_0.d0si file). If the player does not have a valid UID, his objects are spawned without an owner, and therefore can be edited by anyone (even if g_sandbox_editor_free is disabled).
Mircea Kitsune [Thu, 27 Oct 2011 20:18:11 +0000 (23:18 +0300)]
Remove forgotten code from old material system
Mircea Kitsune [Thu, 27 Oct 2011 20:07:10 +0000 (23:07 +0300)]
Fix a material bug in the clipboard
Mircea Kitsune [Thu, 27 Oct 2011 20:01:25 +0000 (23:01 +0300)]
Allow the menu to specify material as a text string
Mircea Kitsune [Thu, 27 Oct 2011 19:56:37 +0000 (22:56 +0300)]
Allow the edit_object command to receive a property without a value, as we now use that to set no material
Mircea Kitsune [Thu, 27 Oct 2011 19:54:41 +0000 (22:54 +0300)]
Get the new material system working. The material slider in the menu will not work for now.
Mircea Kitsune [Thu, 27 Oct 2011 19:38:48 +0000 (22:38 +0300)]
Don't hard code materials. This will allow server admins to create their own materials only by adding particles and sounds, without having to recompile the code. This commit breaks functionality for now
Mircea Kitsune [Thu, 27 Oct 2011 17:19:41 +0000 (20:19 +0300)]
Rename cvars for object limits and free editing
Mircea Kitsune [Thu, 27 Oct 2011 17:17:07 +0000 (20:17 +0300)]
Only being allowed to edit your own objects is now a default behavior
Mircea Kitsune [Thu, 27 Oct 2011 17:15:11 +0000 (20:15 +0300)]
Add a cvar which allows players to edit each other's objects. Disabled by default, and only to be used on servers where the people know each other.
Mircea Kitsune [Thu, 27 Oct 2011 17:07:26 +0000 (20:07 +0300)]
Increase / decrease the object count of the owner, not of the person spawning / removing objects. As later on, we might have support for removing objects using other means.
Mircea Kitsune [Thu, 27 Oct 2011 17:00:56 +0000 (20:00 +0300)]
Add a maximum number of objects each player can place at a time. By default, players may have up to 100 objects
Mircea Kitsune [Thu, 27 Oct 2011 14:44:44 +0000 (17:44 +0300)]
Sandbox menu: Address the object the player is looking at as *, which should make things easier to understand
Mircea Kitsune [Thu, 27 Oct 2011 14:39:30 +0000 (17:39 +0300)]
Make the attachment functions in the menu a bit more clear
Mircea Kitsune [Thu, 27 Oct 2011 14:32:08 +0000 (17:32 +0300)]
Fix a code typo
Mircea Kitsune [Thu, 27 Oct 2011 14:30:45 +0000 (17:30 +0300)]
Add attachment tools to the sandbox menu
Mircea Kitsune [Thu, 27 Oct 2011 14:19:11 +0000 (17:19 +0300)]
Document attachments in the help system
Mircea Kitsune [Thu, 27 Oct 2011 14:12:36 +0000 (17:12 +0300)]
Apply the previous physics of the object once it's detached, instead of reverting to default MOVETYPE_TOSS
Mircea Kitsune [Thu, 27 Oct 2011 14:02:18 +0000 (17:02 +0300)]
Change some things in the attachment system
Mircea Kitsune [Thu, 27 Oct 2011 13:45:20 +0000 (16:45 +0300)]
Add information messages to the remove command as well
Mircea Kitsune [Thu, 27 Oct 2011 13:42:44 +0000 (16:42 +0300)]
If the object was attached, no longer keep it scheduled for attachment
Mircea Kitsune [Thu, 27 Oct 2011 13:41:00 +0000 (16:41 +0300)]
Add basic warnings and preventions to the attachment commands
Mircea Kitsune [Thu, 27 Oct 2011 13:23:33 +0000 (16:23 +0300)]
Fix detaching of objects. Attached objects are no longer traced (and would be impossible to edit), so the detach function addresses the parent instead. When used, all objects attached to it get detached.
Mircea Kitsune [Thu, 27 Oct 2011 13:11:14 +0000 (16:11 +0300)]
Get object attachment working for the most part
Mircea Kitsune [Thu, 27 Oct 2011 12:47:35 +0000 (15:47 +0300)]
First step in implementing object to object attachment. Only partly working and buggy so far
Mircea Kitsune [Thu, 27 Oct 2011 12:13:48 +0000 (15:13 +0300)]
Calculate impact speed starting from minimum velocity, not actual velocity. Also fix particles so that their count is reduced / increased properly.
Mircea Kitsune [Thu, 27 Oct 2011 11:57:13 +0000 (14:57 +0300)]
Change the way material intensity is calculated, to account the velocity of the object hitting it as well and simplify the code
Rudolf Polzer [Thu, 27 Oct 2011 11:32:43 +0000 (13:32 +0200)]
fix missing strzoning in menu_cmd curl --cvar
Mircea Kitsune [Thu, 27 Oct 2011 10:54:57 +0000 (13:54 +0300)]
Particle count should always be a whole number. Also add a code comment
Mircea Kitsune [Thu, 27 Oct 2011 10:48:31 +0000 (13:48 +0300)]
Make particle count and intensity of impact sound depend on the impact speed
Mircea Kitsune [Thu, 27 Oct 2011 10:30:39 +0000 (13:30 +0300)]
Particles for wood and flesh impacts
Mircea Kitsune [Thu, 27 Oct 2011 10:03:05 +0000 (13:03 +0300)]
Particle effects for metal and stone impacts
Mircea Kitsune [Thu, 27 Oct 2011 09:50:05 +0000 (12:50 +0300)]
No material by default. Feels most correct
Mircea Kitsune [Thu, 27 Oct 2011 09:47:15 +0000 (12:47 +0300)]
Properly name the color buttons
Rudolf Polzer [Thu, 27 Oct 2011 08:28:42 +0000 (10:28 +0200)]
handle an entity being antilag-takenback multiple times
Rudolf Polzer [Thu, 27 Oct 2011 08:01:44 +0000 (10:01 +0200)]
set proper colormap value for respawn ghosts
Rudolf Polzer [Thu, 27 Oct 2011 08:00:48 +0000 (10:00 +0200)]
CopyBody: unlink the color from the player slot when cloning
Rudolf Polzer [Thu, 27 Oct 2011 07:35:27 +0000 (09:35 +0200)]
Merge remote-tracking branch 'origin/atheros/secret'
Conflicts:
qcsrc/server/progs.src
Mircea Kitsune [Wed, 26 Oct 2011 21:30:34 +0000 (00:30 +0300)]
Shorten save code
Mircea Kitsune [Wed, 26 Oct 2011 21:27:45 +0000 (00:27 +0300)]
Make the clipboard work again, at the expense of not implementing it exactly how I wanted initially