aboutsummaryrefslogtreecommitdiff
path: root/contrib/vmap_debugger/readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/vmap_debugger/readme.txt')
-rw-r--r--contrib/vmap_debugger/readme.txt121
1 files changed, 121 insertions, 0 deletions
diff --git a/contrib/vmap_debugger/readme.txt b/contrib/vmap_debugger/readme.txt
new file mode 100644
index 00000000000..b97715ab080
--- /dev/null
+++ b/contrib/vmap_debugger/readme.txt
@@ -0,0 +1,121 @@
+Here you find a visual debugging tool. With that you can check it yourself. You need to compile it
+yourself or just use the precompiled version. The precompiled version should not need any
+additional libraries. If you try to compile it yourself you need G3D library 7.00 and
+SDL 1.2.8 or higher.
+
+There is NO “how to compile support”.... You will manage it, if you need to...
+
+What does it do?
+
+The program analyses the content of the vmapcmd.log file created by [b] mangosd compiled
+in debug mode [/b] with vmap support. The commands written to disk are read and the result
+is displayed in a graphical view. This view shows a wire frame model of the loaded vmaps
+and you can move in these maps. Furthermore you can see witch line of sight query where
+performed and its result. You are able to perform the ling of sight query again and will see, if
+the current version of the vmap source compiled against the debugger, produces the same
+result. This last function is useful for debugging the line of sight code.
+
+The little program is a real hack, but is fits is purpose.
+
+How to use it:
+
+[b]Logging[b]
+You will need to set _VMAP_LOG_DEBUG when compiling core in debug mode to get this log.
+If mangos is compiled in debug mode it will then write the vmapcmd.log file. The file does only
+contain the information which vmaps are loaded. I addition to that the file need the
+information where your character currently in standing in the maps. This position information
+has to be inserted manually. To do that I modified the .announce command to send the
+position of the current character to the log file (modification is in the attached patch).
+
+The line of sight query is only stored in the log file if you enable this kind of logging. This is
+done by performing the modified .gm off command. Enabling line of sight and moving your
+character a bit will log the queries and there results. Don’t do this for log, it will produce lots
+of data, which is hard to analyze later.
+
+The modified command .gm on will stop the logging of the line of sight calculation.
+
+What do you have to do for logging?
+1. Apply the patch to mangos to modify your .announce, .gmoff and .gmon commands
+2. Compile mangos in debug mode
+3. Go to the position where you suspect a problem
+4. Use .gmon to be sure you will not be attacked when you login
+5. Save, Logoff and stop mangosd
+6. Delete the vmapcmd.log from the mangos dir. The logger will append to that file.
+7. Start mangos
+8. Login with your character
+9. Send your position to the log file. Do this with the .announce command (.announce
+foo)
+10. Type .gmoff enabling the line of sight logging
+11. Move a bit to get the attention of the mobs
+12. Type .gmon to stop the logging
+
+[b]Analysing the log file[/b]
+1. Start the vmap debugger with the path to the mangos data dir and the full path (name) of
+the log file
+2. The debugger is controlled by single keys and the mouse. Here is a list of key commands.
+The result is displayed at the console:
+
+l – (small L) Load the next block off logging data into the command queue and process the
+first command from the queue. When the end is reached a message “end reached” is display at
+the console. If you reached the you can press l again. Sending .gm on sets an end mark to the
+file. You have to load the next logging block after each .gmon command.
+
+r – Reload the last command block
+
+mouse middle click – process the next command from the queue
+
+mouse left click – reprocess the last command from the queue
+
+c – recalculate the last line of sight command and send the result to the console
+
+w,s,a,d – move within the 3D view
+
+ESC – exit
+
+TAB – release/grep the mouse
+
+[b]How to test the included example with the precompiled version with the included
+vmapcmd.log file:[b]
+
+open your console
+move to the contrib\vmap_debugger\bin directory
+run: vmapdebugger.exe <your mangos data dir> vmapcmd.log
+Wait until the block screen is open and arrange the console and the screen, so you can see
+both
+Press: l (small L not one)
+click middle
+click middle
+click middle
+
+Now you should see the wire frame model of scholo and the green line of sight line in the
+display. The green line means the test was performed and you are seen. A red line means you
+are not seen. Move around a bit with the mouse and the w,s,a,d keys.
+
+Press c
+Press ESC
+
+[b]Problems with your gfx.card[/b]
+Maybe the program does not woth with your graphics card. In this case you have dad luck.
+One think might help, if not .... I do not know...:
+
+Here I take 60 MB Ram from Gfx-Card [b]VARArea::create(1024*1024*60)[/b]. That
+might cause problems on your system.
+
+[code]
+ ModelContainerView::ModelContainerView(GApp* pApp) : GApplet(pApp) {
+ i_App = pApp;
+
+ iCommandFileRW.setFileName(gLogFile);
+ iCurrCmdIndex = 0;
+ iVMapManager = new VMapManager();
+ iDrawLine = false;
+
+ iVARAreaRef = VARArea::create(1024*1024*60);
+ iInstanceId = -1;
+
+ }
+[/code]
+
+This should give all of you who, are interested the chance to check the content and behavior
+of the vmaps.
+