Discussion and Support

Skip to content

It is currently Tue Feb 20, 2018 11:48 pm 

Forum rules

PLEASE don't post images of your entire desktop, attach entire campaign files when only a single file is needed, or generally act in some other anti-social behavior. :)

Reply to topic  [ 15 posts ] 

Previous topic | Next topic 

  Print view

Author Message
User avatar  Offline
Site Admin
Joined: Mon Jun 12, 2006 12:20 pm
Posts: 12111
Location: Tampa, FL
 Post subject: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Sat Jan 10, 2009 11:48 pm 
This thread is for MapTool developers. I've suddenly found myself with a lot of time on my hands (all the credit goes to the recession!) and I thought it might be good to have some centralized information available here.

First, I would like to use this thread as a "clearinghouse" for projects that contributors would like to take on. If you've got some Java experience and want to start playing around in MapTool, please see the Bug Reports subforum for a list of needed fixes/features. Once you decide to publicly take on a project, make a single post here and give a description of what you plan to work on. If possible, include a link to the forum post that describes the problem and any discussed solutions.

In order to grab the source code, you might check out this thread in the General Discussion forum. It talks about how to setup Eclipse and what the SVN (subversion) repository URL is for checking out the code.

Each developer should have a single post here. Should you change the list of projects that you're working on, come back here and edit the post. As you complete projects, please DO NOT edit them out unless they've already been included in a build. This can potentially help in determining which threads in the Bug Report forum have been squashed. If possible, use the list BBcode command with a numeric sequence to organize your projects into three groups: work-in-progress, completed (meaning you consider the change "feature complete"), and applied (submitted to Trevor and included in a build). Please put them in that order.

When you get a feature to the point where you think it's ready for public testing, add a link to the patch in your posting (the forum currently allows attachments, but I don't know if that will last). You should ensure that your patch adheres to these guidelines before sending the patch to Trevor for inclusion into the central source pool. (Patches presented here need not comply with the guidelines, but it's recommended that they do, since your patch will receive wider testing.)

If you would like to comment on the above ideas, please use the guidelines thread that I mentioned above. I'm turning on notification for this thread, so I'll find out when additions are made. If the post is to discuss this topic, it will be deleted. Please use the guideline thread for that.

User avatar  Offline
Site Admin
Joined: Mon Jun 12, 2006 12:20 pm
Posts: 12111
Location: Tampa, FL
 Post subject: Azhrei
PostPosted: Sun Jan 11, 2009 12:00 am 
Things I'm working on:
  1. Unified load/save of any object type in MapTool that might conceivably be exported. This is a big one. :) The code is there in SVN but not enabled in the UI. Trevor has indicated he wants a higher-level approach that allows individual maps to be "standalone campaigns" and then to support some type of campaign merging. AFAICT, the existing technique and a "merge" technique would have the same general problems...
  2. Looking at enhancing the text labels by allowing the GM to specify a layer and perhaps using HTML instead of just text (allowing for fonts, images, and so forth).
  3. Moving all text strings to external file(s) to support translation (long-term set of patches)
  4. Some keystrokes are not looked up in the i18n.properties file. Such as "D" for dropping a token when moving via the arrow keys, or "T" to cycle token selection.
  5. Add a list of recently used textures to the drawing panel, similar to the recently used color list
  6. Add a "Recently Used" list of images from the library (similar to the texture note, above)
  7. Add the ability to update a campaign repository in addition to being able to export the campaign repository (currently on hold pending investigation into some testers not being able to upload assets; if you would like to test this, please PM me)
  8. Adding support for auto-saving the chat log on some periodic basis as chosen by the user. Initial UI support is in but does not have support code behind it.
  9. Adding support for the zoom level to be stored with each map. A separate but related issue is that the zoom level between the keyboard and mouse doesn't seem to stay in sync. (Check out this thread and this thread for discussion.)
  10. Disable the rest of the UI while the Test Connection is doing its thing.
  11. Add the ability of the AssetDirectory to detect when directory timestamps have been updated and auto-index new images.
  12. Add an option to auto-select the token that receives the initiative if it's owned by the current user.
  13. Add a checkbox that changes the Search textbox into a global search vs. just the currently library folder.


The following patches are pending submission:
  1. Add confirmation dialog to right-click macro menu Reset option.
  2. Add check to Campaign Properties to disallow property names that differ only in their case.
  3. Modify Wiki: getPropertyNames() so that it returns mixed case variable names.
  4. Assets in RPToks were being written out as MIME64 encoded text instead of as binary images.
  5. Don't merge old assets from PackedFile into new PackedFile (unless requested?).
  6. Remove the Macro tab and all references to macros on the token editor dialog.

Last edited by Azhrei on Fri Mar 05, 2010 9:43 pm, edited 20 times in total.
Updated to latest status

User avatar  Offline
Joined: Tue Dec 16, 2008 9:09 am
Posts: 145
Location: Torino (Italy)
 Post subject: Luca Gioppo Activity
PostPosted: Sun Jan 11, 2009 3:27 pm 
In progress:
  • Adding import capability to Maptool to get data from PCgen-. this means create a sheet for exporting char from PCgen and a mod to MapTool to add a new menu, a new dialog and the import procedure to add the token; status: implemented, works, patch sent to Trevor and posted here, preparing a example sheet for PCgen to use in test.
Brainstorming and hacking:
  • Working on MBL idea
  • Adding topology to token so that each token (not one's in TOKEN layer) can have a personal topology that moves with it and that gets copyed and so ont; you can see the following thread for info; status: implemented, works, sent Trevor the patch.
  • Adding topology to drawings (stuff done with the drawing tool) so that if you draw a rectangle you get automatically a topology rectangle in the same position and overlapped with it); status: implemented, works with all tools, submitted patch to Trevor (possibly for [b51]), updated patch sent.
  • Added change of path color when moved beyond max movement. Have to send the patch to Trevor.
  • Adding a TimeManagement functionality in java so that it will be possible to have a calendar with function to keep it in synch with init and to record stuff (using joda_time for the time management ... I'm adding to it the Harptos chronology so that there will be the possibility at campaign level the chance to use a forgotten realm calendar or a normal ISO); plan to add a serialize calendar (or export) also import function, something to display (I'm thinking something like a timeline more than a calendar)
  • Would like to work on movement cost associated to drawing, but still really bogging on some things

Last edited by gioppo on Fri Jun 04, 2010 12:11 pm, edited 7 times in total.

Great Wyrm
Joined: Sun Jun 22, 2008 6:53 pm
Posts: 2104
Location: Melbourne, Australia
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Mon Jan 12, 2009 12:12 am 
Edit: Updated Feb 04

Here is a list of the stuff I am doing/still plan to do.
Its a random mismash of bug fixes and requests that have piled up. Normally I would try separate the bug fixes from the new stuff but since a lot of it is all in the same parts of the code any attempt to do so is most likely doomed. I am sure this will conflict with others stuff so I don't mind asking Trevor to try apply this patch last, then when it fails, er I mean if, tell me so I can update latest from SVN and fix up the patch and resend it.

Completed but most of it needs more testing
  • Correcting a lot of null pointer problems in macro code.
  • Correcting a lot of error messages in macro function code (cut and paste has gotten its way in some places, and others need a clean up ;) ).
  • Fixed bug which allows anyone to call removeAllFromInitiative((), removeAllPCsFromInitative(), removeAllNPCsFromInitaitive().
  • Fixed memory leak in edit token macro button dialog.
  • Initiative functions are now trusted macro functions, not GM only.
  • getProperty() now returns the evaluated property or the default (if it exists) if there is no value. (Since everyone wanted to use it that way anyways :))
  • getRawProperty() added to do what getProperty() previously did :)
  • Properties with default values are no longer prompted for in mouse over stat sheet if not set, instead the default value is used.
  • Getting a token property (via either getProperty() or val = prop) will now always return the default value (if there is one) where there is no value for the property. Previously it had depended on if the edit token dialog had been opened or not.
  • Fully trusted macros now work for impersonated panel/selection panel.
  • Preference option to set the foreground/background color for player/token name in fully trusted macro so you can distinguish them.
  • Tooltips now pop up quicker and stay on the screen for longer.
  • Preference option to adjust timing values of tooltips.
  • Added trusted function getInitiativeToken() which returns the ID of the token with initiative.
  • Added trusted function removeMacro() which can remove the macro button from a token.
  • json.contains() now also works for arrays.
  • Added json.sort() to sort arrays.
  • Added json.shuffle() to shuffle arrays.
  • Added function getTokenStates() which returns an enumeration of all the valid token states.
  • Added json.indent() to indent json code for easier viewing/debugging.
  • Added trusted function getDistance() which returns the distance between tokens.
  • Added trusted function getDistanceXY() which returns the distance between a token and a x,y point.
  • Added getLocation() which returns the x,y,z location of a token.
  • json.get() can be used to return array slices.
  • json.get() can be used to return multiple keys in a json object (the return value is another json object).
  • Many macro functions have been modified to accept an optional argument to specify which token to operate on to make life a lot easier (you can only do this when macro is trusted).
  • trusted getTokens() function can accept a json object which specifies multiple conditions for retrieving a list of tokens. (e.g. NPC and state Dead is not set and Visible).
  • getMacroButtonIndex() to return the index of the button that was clicked.
  • Fixed macro functions repaint bugs introduced in b50 with the demise of the auto repaint thread.

Other stuff that has been requested that I still need to do (if it is possible to do without major hacks)
  • Add function moveToken()
  • Add function goto()
  • Add functions getAngle() (or getHeading()) and getMagnitude() (or some better name) for getting a vector representation of distance to token/x,y.
  • Add functions getFacing()/setFacing()
  • Add an argument to getMacros() to return all macros in a group.
  • [gm(): ] [whisper(): ] [twhisper(): ] [self(): ]
  • OnClick call back for objects (synchronization will have to be handled by macro writer at this point)
  • Some sort of macro alias to make on the fly usage of callable macros easier
  • Server Policy for [ ], do they default to [e: ] or [t: ]
  • Make JSON usable for macro links.
  • Make JSON usable or dialog forms.
  • Make trusted/Fully trusted macros work with campaign macros.

Bugs still to fix
  • Parser/JSON conflict for single element JSON arrays.
  • Fix macroLink error messages when macro does not exist
  • macro.args should always default to "" not just when a macro is called.
  • Fix problems in several macro functions where some change in b50 caused them to no longer propagate changes to all clients.

Stuff I would like to add for myself (hey don't I get a chance to add something I want, I promise others will find it useful ;) )
  • User definable tooltips for macro buttons.
  • A new server policy "Lock Player Token Movement to Init" (only some how shorter text), that will allow players to only move the token that currently has initiative if it is set.

Apart from that I would REALLY like to clean up MapToolLineParser, and remove the { } stack overflow bug, but not sure if I will get the time...

I am sure I forgot something and I will get a PM or two as a reminder :)

Last edited by Craig on Tue Feb 03, 2009 11:38 pm, edited 1 time in total.

User avatar  Offline
Cave Troll
Joined: Tue Jul 01, 2008 8:32 pm
Posts: 53
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Mon Jan 12, 2009 9:38 am 
Here is a list of the stuff I am doing (Is small I start to develop in maptool not long ago):

Almost complete, still more testing
  • Adding the functionality to auto execute a macro when the token gain the initiative
  • Fixing bug in the Macro tab in the Token Edition Dialog

User avatar  Offline
Joined: Thu Jul 03, 2008 2:52 pm
Posts: 154
Location: Not Here
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Sun Mar 01, 2009 3:48 pm 
I don't remember some of the smaller/older stuff I've worked on but:

Completed Features:
[1.3b49] Editable Common Macros
[1.3b49] Macro Commonality Customization
[1.3b49] Tokens Affected by Macro Halo
[1.3b50] Table Import/Export
[1.3b54] FREQ: Add an option to allow tables to be hidden from players.

Works In Progress (in order of priority):
[1.4b?] FREQ: Allow macros to be specified as hidden. Add a macro visibility toggle to panels that keys off of macro "hidden" flags.
[1.4b?] FREQ: Allow a token to run one or multiple macros when double-clicked, instead of opening the edit dialog (Still getting community opinions on functionality and interface)
[1.4b?] FREQ: Campaign panel revamp. Add a GM panel with macros that reside in campaign properties but are only visible to a GM. The original campaign panel would still hold player accessible macros.
[1.4b?] Third Party Table Import/Export (I am starting with .csv, we'll see where it goes from there)

Completed Personal Stuff That Will Never Be In An Official Release:
JSR223 Scripting Support (in particular, JavaScript)
Token Self Macro Type (outputs only to token owners and GMs)

"Should" is the biggest word in the English language.

"Just" is the second biggest word in the English language.

What I'm working on

Last edited by applekor on Fri Apr 17, 2009 7:45 am, edited 3 times in total.

User avatar  Offline
Codeum Arcanum (RPTools Founder)
Joined: Mon Jan 09, 2006 4:16 pm
Posts: 11390
Location: Austin, Tx
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Thu Mar 05, 2009 2:20 pm 
Please note that every developer needs to contact me directly before starting on a feature as I may have a specific implementation method that I'd like to see for that feature, or additional information that may make it easier, or harder.

I can be picky when it comes to patches, so be aware that I won't apply a patch simply because someone writes it.

That said, let the development flurry commence !

Dreaming of a 1.3 release

Cave Troll
Joined: Wed May 06, 2009 12:35 pm
Posts: 93
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Thu May 14, 2009 3:49 pm 
Well, I'm still a MT newbie but that isn't keeping me from diving in to playing around with development ("hey, I want it to do *this*''') and getting in over my head.

I'm starting with stuff "on my own recognizance" because until I've played around with the code and am more familiar with it, I think it makes sense to let the "old hands" fix/clean up the stuff already "in the queue" from player requests without shoving my oar in. This way, when I screw up by doing something remarkably & obviously stupid (most likely with server-level issues) no one is kept waiting for something they already wanted. :D

My two main interests seem to be:
(1) Interactive objects
(2) Making the environments player-specific (so that each player, even each character, would be able to see/do different things if the GM so chooses... requiring more party interaction, cooperation & communication).


Clickable objects which run macros when clicked. I've got this working... I need to test/debug it and then expand it to be player-specific (so that some players can click an object, others cannot). (Trevor-approved... no target version set yet).

Macro-editable player note window: basically done (it's actually a subset of the above) but oops, I realize while typing this that I never touched base with Trevor on this. It was the first dev I made when playing around with MT code. Needs more testing/experimenting before it's ready to be submitted to anyone, though it's simple enough that I think it's probably good to go. (The idea here is that, before popping up the hover pane, you could change the "player text" so that different players would see different info.)

Selectively Viewable Objects so that objects (or even PCs/NPCs) can be seen by some players but not others. I've got the basics of this working and have the GM interface up... I need to make support macros for it and then test & debug. Still waiting to hear more back from Trevor on this one though.

On-move macro (i.e. one that automatically is called when a token is moved). Sort of a trivial extension/adaption of what I'm already doing, so I stuck it in to my in-testing code just for fun. No idea if Trevor will want it put into MT or not.

A bunch of minor fixes/tweaks as I discover/need them.


These I'm just playing around conceptually with. In many cases, I have some fairly structured ideas already about how to do them. But they all need feedback (and/or vetoes) from Trevor still -- and that feedback after the final version of 1.3 is done, when he'll have time to give them that consideration and indicate how (or even if) he'd want it done.

Selectively audible effects: support for player-tailored "audibility" analogous to the "visibility" we currently have. (NB - this would not be implementing sound per se. I'd put some simple-minded sound routines in for testing purposes, obviously, but the idea would be to get this code conceptualized, debugged, and put in place so that whenever sound was officially put in to MT, this functionality could be dropped in as well. So it needs to be more or less independent of *how* sound is implemented, but ready to call on those 'official' routines if and when they are eventually added to MT.)

MULTIPLE LAYERS: (so not just the background/object/hidden/token presets.) Yeah, this is a biggie. Potentially hugely powerful, but also a real b***h of recoding/repackaging. Again, this needs feedback from Trevor (and probably others as well) -- and, anyway, it may be way beyond my pay grade -- and so I'm not really going to even consider doing anything 'official' on it until after 1.3 is done and Trevor can whup me upside the head for being an impertinent unknown newbie.

I just mention it here 'cause I find myself thinking about it a lot -- there is so much cool stuff that could be done were this in place -- and am curious about what other code tinkerers have thought on the subject.

and that's more than enough to be getting on with, I'm sure. :)

Last edited by L P on Sat May 23, 2009 8:15 pm, edited 2 times in total.

User avatar  Offline
Joined: Tue Jan 02, 2007 3:03 pm
Posts: 481
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Sat May 23, 2009 3:28 pm 
Since there's a sticky post for it, I might as well collaborate =D

Everything below has been previously discussed with trevor.

Currently working through bugs for the release:

galneweinhaw = galileo newton einstein hawking

User avatar  Offline
Joined: Sat Jul 25, 2009 1:59 pm
Posts: 12
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Mon Jul 27, 2009 9:50 am 
Bug triage.

Patch submitted:
[1.3b56] BUG: tableImage() load failures

In progress:
[1.3b56] Dialog/Frame Form Replacing Semi-colon

[1.3b56] BUG: "class" vanishes for json.set

User avatar  Offline
Joined: Tue Jul 01, 2008 6:48 pm
Posts: 6237
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Wed Aug 12, 2009 12:46 pm 


What I'm Working On

MapTool Tutorials:
Introduction to Tokens
Introduction to Properties
Introduction to Macro Writing
Introduction to Light and Sight

Last edited by Rumble on Sat Mar 13, 2010 8:25 am, edited 14 times in total.

User avatar  Offline
Great Wyrm
Joined: Wed Nov 15, 2006 9:03 am
Posts: 1023
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Wed Aug 19, 2009 9:33 pm 
completely new kid, but i fixed something, kinda sorta... i'll just sorta pick at the lil crumbs of broken stuff as i get my feet wet :D

currently working
Externalization for Localization (of the zation? :D)
Submitted work

applied patches

Clear global macro issues original thread
Opacity breaks over 255 units, original thread

Last edited by aku on Thu Nov 04, 2010 2:31 pm, edited 3 times in total.

Joined: Mon May 25, 2009 5:03 am
Posts: 9
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Tue Oct 06, 2009 8:36 pm 
New to Maptool development (Hi, everyone!), started working on some bug fixes.
Working on various bug type fixes.

In Progress:

Patch Submitted:
1.3.b59 - Renaming default SightType name breaks vision.

Cave Troll
Joined: Thu Aug 20, 2009 2:21 am
Posts: 26
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Tue Nov 24, 2009 7:08 am 
Note: Lots of threads apply to 1 and 2. If nobody has a better idea (feel free to PM me), I'll start a thread in "General>Developer Notes>Java Programming Info" with a patch people can try and comment on. Might not happen until after the weekend.
  • In progress:
    1. Modify map properties (background, grid, units per cell, etc.) (needs testing)
    2. Gridless auto-reveal (depends on #1) (needs testing; especially on Mac)
    3. Display units after movement distance (depends on #1)

Cave Troll
Joined: Sat Jan 09, 2010 7:45 pm
Posts: 28
 Post subject: Re: Developer Guide (works-in-progress, guidelines, etc)
PostPosted: Mon Mar 08, 2010 1:58 pm 
Hello, MapTool newbie and hope to contribute.

In Progress

  • A visual que when players are typing in chat. Too often, I can't tell if the DM is still typing or if he's now waiting for us. Perhaps just a little bubble icon over the token or line item in the init tracker to start.

Display posts from previous:  Sort by  
Reply to topic  [ 15 posts ] 

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:

Who is online

In total there are 4 users online :: 0 registered, 0 hidden and 4 guests (based on users active over the past 5 minutes)
Most users ever online was 243 on Sun Nov 04, 2012 6:14 am

Users browsing this forum: No registered users and 4 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group

Style based on Andreas08 by Andreas Viklund

Style by Elizabeth Shulman