Update notes: Empfe 2.0 -> 2.0.1 - Empfe now detects the '*** illegal direction character ***' as a move/navigate/fly stopper. The move will be aborted if this is detected when a delayed command is executing. This should never happen, but that's theory.. - Added one more column for ship numbers in the info window. - Fixed a nasty bug that sometimes caused Empfe to crash when a sector is written over. This happens when a sector owned by somebody else is taken over by you. This bug will only strike in 128x128 and 256x256 worlds. - Added some database read intregity checks and recovery. Empfe 2.0beta6 -> 2.0 - Empfe now switches info window header automatically when you go to a ship or sector. - Lookout lines without country names are now supported. - Empfe should handle very long lines better now. - Edit->Ship->Sunk now toggles the sunken flag. Empfe 2.0beta5 -> beta6 - Added ARexx command find_ship_number(ship) which will find the lowest ship in the fleet or a ship by its name. - Empfe now collapses bridge spans for future Empire versions. - Empfe now knows what sector you granted away for future Empire versions. - Tuned Empfe a little bit using the profiler. - Empfe is now a bit more restrictive on sending commands to ARexx. This will stop some requesters that's pops up in the workbench. - Fixed a severe bug that allowed ARexx functions that used highlight expressions to use two already allocated flags. These were the mine flag and the medium flag. The medium flag says that this sector is medium sized, resetting it (as ARexx could) says that the sector is long sized, thus overlapping innocent memory. - Added code to parse all messages from updated sectors and setting these sectors dirty. - Added a test for the number of updated sectors, if this number is close to the number of sectors we beleive to own, all sectors will be set dirty. - Modified the handling of characters from the user and delayed commands for the local client. I think that I fixed a bug that sometimes caused a GURU by doing this. - Empfe should now accept incoming carriage returns. - The path finder will no longer generate paths through a sector with the plague. Empfe 2.0beta4 -> beta5 - Sectors with ore ready to move will now be marked with the backlog flag. The backlog will stay on as long as the sector has 127 ore left. - Empfe now knows about hurricane damage. - Empfe used to guru when a find_path() where running and you forced a quit. This and a couple of other dangerous ARexx related stuff has been fixed. - Error messages from ARexx macros are now displayed in the terminal window. - Rewrote the map printer code to handle all kinds of map sizes. You can get your own map using ARexx function get_map_line(). - Fixed a bug that caused Empfe to guru if the world size were decreased as the result of a new init file. !! - Modified the init file format, you MUST add a 'set ' before every variable!! This was done for the future, there will be other commands than 'set' and it's easier for a few to change that now, than let every user do it later. - Added full Workbench support, you set internal variables as the tool types. The init file is NOT read at all. - Empfe now knows about building bridge spans. - Empfe now detects when another country grants a sector to you. - The path finder will now allow you to sail under bridges owned by someone else. - Empfe will no longer set all your sectors as dirty when a auto login succeeds. This was useful before because a dump would update the sector if needed. This isn't the case anymore... - Empfe now knows about checkpoint codes and the boolean user variable "AutoCheckpoint" (default 1) controls auto checkpointing. Checkpoint codes are recorded every time you answer a checkpoint request correclyt. Checkpoint code will be reset if you or Empfe fails to enter a proper checkpoint code. - The user variable "DoAutoMapping" is now called "AutoMapping". - I _think_ I've fixed a bug in the serial code that could cause Empfe not to detect when a delayed command were finished. The serial write logic were changed a bit and is now similair to the one used by the local client. I also tested the serial code and it worked without any problems at all after these fixes. - Added ARexx function do_command(cmd,pri) which does the same thing as queue_command(), except that it will wait until the command is executed and the prompt comes up again. - Empfe will no longer quit as soon as you connect Empfe to Empire, if you have had Empfe unconnected for a while. - Added menu item "Hide delayed commands" which lets you control whether you want to see delayed commands execute or not. - Added two default ARexx macros which are named by user variables: ARexxLogin (default "login.empfe") Called every auto login. ARexxStartup (default "startup.empfe") Called every time you start Empfe. - The function list used by get_running_functions() had its tail zapped when a macro in the middle terminated, fixed. - Empfe locked up when a delayed command timed out, the only way out of it was to quit, fixed. - Quitting Empfe as a local client was a bit like russian roulette, you could easily slip to mr GURU. It should be a bit safer now.. - The path finder can now generate paths through checkpointed sectors. - Added ARexx command empfe_run(command) to start other ARexx macros under Empfe. You'll get your macro recorded under Empfe this way. - Added ARexx item 'checkpoint' which is valid for sectors, you may get and set sector checkpoint codes with it. - Added user variable MaxMapWindowSize. You can set the number of map sector lines with this variable and save some memory. Default is 0 (off), first valid number is 5 (lines). - Spying on sectors from the air now works. - A taken sector is now marked dirty. - Empfe now understands that an evil country can crash into your sector with planes. - Ditching planes into water is now supported by the parser. - Fixed a stupid bug which caused move prompts for planes to be ignored. - Empfe will terminate a fly when the plane(s) run out of fuel if the command was issued from a macro. - The path finder can now generate paths in the air. Empfe 2.0beta3 -> beta4 - Empfe will output a 'return' to terminate the move if a macro tried to move too far. Empfe detects the following error messages that will cause Empire to hang at the move/navigate prompt: *** insufficient mobility *** *** can't go there *** Sector X,Y is owned by someone else. - Empfe no longer makes a trip to the guru if the user tries to change the info window title with no info window visible (oops!). - Fixed a minor bug that caused an empty ship info window to come up with all info held about sectors. - Empfe now uses internal information to determine the number of sectors you own, not what the last power report said, as version 1.x did (I think). - Empfe will try to run all commands Empire rejects as ARexx macros. Put in other words, you can launch ARexx macros from the normal command prompt as if they're normal commands. You'll get a error message from Empire at the moment, but the ARexx macro starts properly. - Control-C interrupt will now output the string "Interrupt!!!" as the CLI Empire client and will no longer generate multiple prompts after the interrupt. - Added parser code for tearing down, paving over and filling in sectors. The modified sector will automatically be marked dirty. - Added PLAGUE support. Empfe will detect the plague and set a sector flag for it. You can see this flag as an 'P' in the info window and refer to it as PLAGUE in the highlight expressions and as an ARexx item. The PLAGUE flag will be reset after the first reported deaths. The sector can still have the PLAGUE for some time, but the flag will be cleared for that sector. - Speeded up the path finder bit. - Added ARexx function write_empfe_screen() to allow ARexx macros to write text in the terminal window. - Added the following new items for ARexx: defender (get/set defender sector for a given sector) delivery_direction (get/set delivery direction for a commodity) delivery_threshold (get/set delivery threshold for a commodity) - Empfe now sets the ship type to 'submarine' for submarines, not *unknown* as before. This happened when you did a lookout or a sonar scan. - Fixed a bug in the path finder. It was pretty bad using directions '1379'. This was caused by a minor error in the implementation of the algorithm. This bug never showed up with BSD Empire since all directions costs the same there. Anyway, it seems to work as it should now. - Added support for multiple phone numbers. Separate phone numbers in the init file with a '$'. A line with three phone numbers may look like: Number 576776$773244$803254 - Fixed a minor bug in the auto dialer that caused Empfe to miss all messages about a CONNECT or a failure. - A production backlog flag will now be reset when the production is updated with a value less than 127, not when you do a auto login as before. - Added ARexx function get_running_macros() which will return a list with all ARexx macros started from Empfe. - Added an icon for Empfe and it runs fine from the workbench. All options must be set in s:Empfe.init, maybe I'll add options for the Workbench too later on. Empfe 2.0beta2 -> beta3 - Ships and sectors are now completely separated in the info window. - Auto login now works good, but still have a little trouble if the login prompt is up already. You must activate the login before starting the local client. - Added new item BACKLOG for ARexx functions. - ARexx function get_sector_flag('flag',row,col) now works, it used to return 0 no matter the value of the flag. - Fixed a bug in the parser code for god message about another country declaring an alliance with you. - Added parser code for alliance/war for the nation command. - Empfe now detects if a country declare their neutrality toward you. Empfe 2.0beta1 -> beta2 - ARexx commands find_ships() & find_sectors() work, I missed to tell ARexx that Empfe succeeded when it did. - Added new item DAY for ARexx functions and highlight expressions. Will give the number of days since the item was updated. - ARexx function get_sector() now works again, it seems that I deleted an 'else' by an accident some days ago when I cleaned the source. - Empfe should no longer guru when it fails to open the serial device. - It should _not_ be possible for a nasty player to send any kind of message to you and have it parsed by Empfe. This doesn't hold for messages from the system owner... - Sector flags will now show up in the info window. - Damage for ships that hits a mine is now properly calculated. - Empfe is now capable of parsing the efficiency for a ship detected on a lookout. - Added parser code for shelling, torpedoing and depth charging ships. - Task priorities should now be set correctly by Empfe. - Added flags for ships that will show up in the info window. (Sunken ships and dirty ships). - Added new menu "misc" for menu options I don't have a better place for. - Added a "Expunge sunken ships" menu option that will erase all ships that are marked as sunked. - One extra character position added for military in the info window. - Empfe won't request ARexx 1.10 any more, it seems that the library version number was bumped from 2 to 34 between 1.06 and 1.10... - The checkmark associated with the flag that tells whether Empfe should log to a file or not is handled better. Empfe 1.03 to Empfe 2.0beta1. - Rewrote ARexx functions, they are fewer and much more powerful. - Added some new ARexx functions. - Major internal changes. Functions more logically organized in more modules. Better and safer database interface. - New parser for Empire text, handles much more messages than before and supports world sizes up to 256x256. - Interface to Empire 2.0 as a local client. - New sector graphics. - Modified database format, Empfe will convert old style databases automatically. - Lots of minor additions. 1.03-> never released version before 2.0 - Will now accept a "?" or a "???" for an unknown country name in the country requester. - Will now work with kinds of world sizes, even 256x256 worlds. - Multiselect in the menus now works as it should. - Added a scroll bar and scroll gadgets in the info window. You choose the number of lines to remember with the user variable InfoLinesToKeep (default is 20 lines). I also fixed so that new info lines will have a different color than old lines. - New highlightoption: "backlog" or "pb" - Marks all sectors that have a production backlog flag set. The production backlog will be reset when Empfe makes a successful autologin. - ARexx support improved: Added some new commands: "FORWARD port" - Instruct Empfe to forward all lines read from the serial port to the given message port (name). "UNFORWARD port" - Stops forwarding lines to a given port. (Empfe will also stop forwarding if the port isn't found or closed.) At the moment, there is NO way for an ARexx macro to know when Empfe closes. And some new functions: get_match(secs,string1,string2,...) - Stay around for 'secs' seconds looking for the strings. If one of the sub string is found a number 1,2,3.. (depending on which string which matched the input stream) is returned. If the sub string is not found (time out) a '0' (false) will be returned. find_path() create_sea_sector(row,col) - Set a sector as sea, this is useful for BSD Empire. my_next_ship(nr) - Return the next following ship that I own or -1 if this was the highest ship. get_empire_header() - Return the value of the init varaible EmpireHeader. Useful if you want to create unique working files in your ARexx macros (if you are playing in more than one game). - Will now adjust the baud rate using the speed given after a CONNECT message if you use Empfe's login command. - Path finder. Callable from ARexx macros in several ways. Every time a path find is issued a new Task will be spawned. This prevents lockups for long path calculations. Paths always starts from a given coordinate and will end at a given coordinate or at a given sector designation or at a sector that matches a highlight string (fully transparent to the user). - New user variables: MaxPathLength The maximum physical length of a path (default 512). FontName Name of the font in the character map mode (default "topaz.font"). FontSize Size (height) of the font in the map window. PathPri Path task priority (default 0). EmpireHeader A string that you can use to distinguish from different Empire games. The use is up to you (default "Empire"). ShiftBSDel Shift the backspace and delete keys (default 0). - Assembler functions for some really low level frequent functions/macros included to improve speed. - If a country name was a subset of another country name, Empfe could get confused and either parse incorrectly or ignore the line, depending of the country numbers. This has been fixed.