Engine Changes in v1.08 (Dan Walma and iNvERTIgO)

* Support for high-color (-truecolor parameter).
* Support for windowed mode (-window parameter).
* Dink moves at a normal (slower) speed on faster computers.
* The 1-pixel row above the status bar now draws sprite graphics.
* Dink can no longer walk around the edges of the screen during a screenlock.
* Time for save game correctly displayed (2:05 instead of 2:5).
* The first tile on the fire and water tile pages animate correctly.
* Variables are no longer shared between two instances of the same script.
* Variables can begin with another variable stub (i.e. &goldtemp will work with
  &gold).
* Dink's map position appears correctly after warps.
* &missle_source is defined for all attacks, not just missiles.
* Properly exits when closed with Alt-F4.
* Corpses appear as the same size as the living sprite.
* Scrolling now appears on 1-pixel rows and columns near status bar.
* "dnotalk" script is run if no sprites are around when Dink talks (not
  required).
* "dnomagic" script is run if Dink tries to use magic without arming any (not
  required).
* "button4" script is run when the user hits the enter key (not required).
* "button7" through "button10" scripts will be run when extra gamepad buttons
  are pressed.
* Removed extra space in "I'm gesturing wildly to  no avail!"
* Framerate can no longer exceed 83 FPS (to fix problems with vsync disabled).
* &return is a built-in variable that stores the last return value of any
  function (built-in or custom).
* Level-up no longer lost if in inventory screen, fixed several other
  experience count issues.
* Status is drawn on load so the magic-level is always displayed.
* Dink's speed reset to normal (3) on load to prevent 'hyper-sword' bug.
* Fixed issue of a phantom keyboard key causing the Map to not be displayed.
* Custom functions can have up to 9 arguments, stored in the built-in variables
  &arg1 through &arg9.
* ffcreate.exe will only include .bmp files (to prevent the .ff file including itself in an
  infinite loop of hard-drive punishment).
* Restoring game will not redraw status bar if it wasn't drawn.
* Fixed issue of loading regular bmp sequences over top of previous sequences
  (before the animation would be 'corrupt').
* Removed screenlock on restart game
* Dinkedit: several spelling/grammar fixes

DinkC Changes in v1.08 (Dan Walma)

* clear_editor_info()
    Removes the editor_seq and editor_frame for all sprites on the map.
* compare_magic(str magicitem)
    Works correctly.
* get_date_day()
    Returns the current day.
* get_date_month()
    Returns the current month.
* get_date_year()
    Returns the current year.
* get_item(str item)
    Returns first slot of this item.
* get_magic(str magicitem)
    Returns first slot of this magic.
* get_next_sprite_with_this_brain(int brain, int spriteignore, int spritestart)
    Begins searching for brains of type 'brain' starting with 'spritestart'.
* get_time_game()
    Returns the number of minutes the player has been playing the game (total).
* get_time_real()
    Returns the number of minutes in the day (900 = 3 pm).
* get_truecolor()
    Returns true if the game is in true-color mode.
* load_map(str mapdat, str dinkdat)
    Loads a new map.dat/dink.dat.  Saved and loaded with the save game.
* load_palette(str palbmp)
    Loads a new global palette (only works in full screen 256 color mode). Saved
    and loaded with the save game.
* load_tile(str tilebmp, int index)
    Loads a new tile set for the given index.  Saved and loaded with the save
    game.
* loopmidi(bool loop)
    If 1, all midis will automatically loop.  If 0, midis will not loop.
* make_global_function(str script, str function)
    Allows you to use the specified function in DinkC without the use of
    external.
* math_abs(int num)
* math_mod(int num1, int num2)
* math_sqrt(int num1)
* map_hard_tile(int maptile, int hardtileindex)
    Gets or sets the hard tiles on the current map screen.  'maptile' refers to
    the tiles on the current screen from 1 (upper-left corner) to 96
    (lower-right corner).
* map_tile(int maptile, int tileindex)
    Gets or sets the tiles on the current map screen.  'maptile' refers to the
    tiles on the current screen from 1 (upper-left corner) to 96 (lower-right
    corner).
* playavi(str avifile)
    Removed command.
* run_script_by_number(int script, "proc");
    No longer runs a random procedure if it cannot locate proc specified.
* screenlock(int value)
    Returns the current screenlock value if value is -1.
* set_dink_base_push(int dinkbasepush)
    Sets the base-push for Dink.  Default is 310.  Not saved with save games.
* set_font_color(int colorindex, int red, int green, int blue)
    Changes the specified color index to the specified color.
* set_save_game_info(str line)
    Sets the line of information to be displayed in the save game summary.  The
    default is "Level &level".
* show_console()
    Shows the console, which accepts DinkC commands as input (Escape to cancel).
* show_inventory()
    Displays the inventory screen.
* sp_blood_seq(int sprite, int seq)
    The start of the blood sequences.
* sp_blood_num(int sprite, int num)
    How many blood sequences follow sp_blood_seq.
* sp_clip_bottom(int sprite, int pixels)
* sp_clip_left(int sprite, int pixels)
* sp_clip_right(int sprite, int pixels)
* sp_clip_top(int sprite, int pixels)
* sp_freeze(int sprite, bool freeze (-1 to return))
    If 1, acts like freeze.  If 0, acts like unfreeze.  -1 will return whether
    the given sprite is frozen or not (basically a better 'busy' function).
* sp_move_x(int sprite, int value)
    Like sp_mx, but does not return a value.
* sp_move_y(int sprite, int value)
    Like sp_my, but does not return a value.
* sp_move_nohard(int sprite, bool value)
    When activated, a sprite can move freely through all hardness.  Previously
    had no effect.
* sp_sound(int sprite, int value)
    Passing a -1 will no longer crash the game.
* var_used()
    Returns the number of variables used.
 
Script Changes in v1.08 (Talmadge Bradley III)

* bar-dp   - No longer drops multiple items if hit using hyper boots.
* bar-e    - No longer drops multiple items if hit using hyper boots.
* bar-f1   - No longer drops multiple items if hit using hyper boots.
* bar-gh   - No longer drops multiple items if hit using hyper boots.
* bar-m    - No longer drops multiple items if hit using hyper boots.
* bar-sh   - No longer drops multiple items if hit using hyper boots.
* bar-sp   - No longer drops multiple items if hit using hyper boots.
* box1-e   - No longer drops multiple items if hit using hyper boots.
* box2-e   - No longer drops multiple items if hit using hyper boots.
* box2-sp  - No longer drops multiple items if hit using hyper boots.
* ch1-ap   - No longer drops multiple items if hit using hyper boots.
* ch1-g    - No longer drops multiple items if hit using hyper boots.
* ch1-gh   - No longer drops multiple items if hit using hyper boots.
* ch1-mp   - No longer drops multiple items if hit using hyper boots.
* ch1-pap  - No longer drops multiple items if hit using hyper boots.
* ch1-sp   - No longer drops multiple items if hit using hyper boots.
* ch1-500  - No longer drops multiple items if hit using hyper boots.
* ch2-ap   - No longer drops multiple items if hit using hyper boots.
* ch2-gh   - No longer drops multiple items if hit using hyper boots.
* ch2-sfb  - No longer drops multiple items if hit using hyper boots.
* ch3-ap   - No longer drops multiple items if hit using hyper boots.
* ch3-h    - No longer drops multiple items if hit using hyper boots.
* dink.ini - Gave the blue knight a death sequence (borrowed silver's).
* en-gmog  - Fix for game crashing on Mog's death really works now.
* item-bt  - Will no longer play sword-hit sound if load the game when sword is
             armed.
* item-fst - Will no longer play sword-hit sound if load the game when sword is
             armed.
* item-pig - Pig feed now thrown if walking diagonally and throwing.
* king     - "carefull" -> "careful"
           - "Thankyou" -> "Thank you"
* lraise   - No longer freezes game forever if exceed Level 32.
* poster   - "King Daniels sends" -> "King Daniel sends"
           - Removed duplicate 'if (story == 12)' section.
* s1-blove - "You kinda talk to much" -> "You kinda talk too much"
           - "Hey" -> "Hey,"
* s1-fmons - "You cannot win Smallwood." -> "You cannot win, Smallwood."
           - "Try your best" line spoken properly (was assigned to
             &current_spicegirl before).
           - Gives experience.
* s1-gg    - "It's at your house" -> "It's at your house,"
* s1-h1-1  - "This my bed!" -> "This is my bed!"
* s1-h1-m  - "She's old, isn't she." -> "She's old, isn't she?"
           - One of Dink's lines appeared over his mother's head.
* s1-h2-1  - "therfore" -> "therefore"
* s1-h2-3  - Added exclamation points for punctuation when hitting the bottles.
* s1-h2-dk - "Bastard!" -> "bastard"
* s1-h2-o  - "what's with all the spirits on the wall there." -> "there?"
           - "Ahh the regrets, right Ethel." -> "Ethel?"
           - "Also Dink your mother was looking for you." -> "Also Dink, your"
* s1-h3-1  - "because you want satisify him." -> "won't satisfy him?"
           - "It's been exactly one year since mother died" -> "Mother"
* s1-h3-2  - Consistency of SmileStein's name.
* s1-h3-3  - Consistency of SmileStein's name.
* s1-h3-l  - One of Dink's lines appeared over Libby's head.
* s1-h3-of - "Get info about farm" -> "Get info about the farm"
           - Consistency of SmileStein's name.
* s1-hole3 - Fixed issue of Dink crawling in the hole at a slightly wrong spot.
* s1-lg    - "wageing" -> "waging"
           - Consistency of SmileStein's name.
           - One of Chealse's lines appeared over Dink's head.
           - Added 'Nevermind' option
* s1-ltr   - "enlclosed" -> "enclosed"
* s1-mh-f  - "posses" -> "possess"
           - "futher" -> "further"
           - "Hey it's" -> "Hey, it's"
* s1-mh-m  - "Cool, what can I do ?" -> "Cool, what can I do?"
* s1-nut   - Plays pickup sound when picked up.
* s1-wand  - "roudy" -> "rowdy"
           - "nearby village" -> "nearby village,"
           - One of Dink's lines appeared over the wanderer's head.
           - No longer randomly vanishes when Dink hits him.
* s1-wand2 - "captured by the goblin's" -> "goblins"
           - "come back from north" -> "come back from the north"
           - No longer randomly vanishes when Dink hits him.
* s2-bar   - "try asking him." -> "him?"
           - "Ok thanks" -> "Ok, thanks"
* s2-ca-g  - "magnificient" -> "magnificent"
           - "invasion of 23" -> "invasion of '23"
           - No longer pause when select 'Leave'
* s2-case  - "Hmm, Just" -> "Hmm, just"
* s2-cave2 - "Ok let's get going" -> "Ok, let's"
* s2-cult  - "suprise" -> "surprise"
           - "sadastic" -> "sadistic"
* s2-man2  - "It taste better" -> "It tastes better"
           - "Harpers" -> "Harper's"
           - Changed some 'wait(400;' lines to 'wait(400);'
* s2-mdoor - "imprisioned" -> "imprisoned"
* s2-mh-m  - "magic you you will teach" -> "magic you will teach"
* s2-na1   - "womans" -> "woman's"
* s2-nadp  - "dear things name?" -> "thing's"
* s2-ryan3 - "Oh no, Guards!!" -> "Oh no, guards!!"
* s2-ryant - "aquire" -> "acquire"
           - "aquiring" -> "acquiring"
           - "Argue with the men even more" dialog choice was never selectable
             and did nothing, so removed.
* s2-table - "Teaparty!" -> "Tea party!"
* s2-tds   - "guy Dink" -> "guy, Dink"
           - "say are" -> "say, are"
           - "Come on let's" -> "Come on, let's"
* s2-sec2  - No longer becomes unhard if hit by fireball.
* s2-wand  - "That's it I'm outta here!" -> "That's it, I'm outta here!"
           - "both human and dragons lived" -> "humans"
           - "just a old tale" -> "just an old tale"
* s3-camp  - "Gotta Run!!" -> "Gotta run!!"
* s3-camps - "Not so Fast ..." -> "Not so fast ..."
* s3-chick - "what else silly." -> "what else silly?"
           - "You know I've" -> "You know, I've"
           - "before hand" -> "beforehand"
           - "populus" -> "populace"
           - "Quick get" -> "Quick, get"
* s3-larry - "Nope sorry" -> "Nope, sorry"
* s3-loser - "they left" -> "they left."
           - "what are you" -> "What are you"
* s3-mayor - "preposterous" -> "preposterous,"
* s3-mog   - "Mog king" -> "Mog, king"
* s3-sign1 - "preperation" -> "preparation"
* s3-st1p  - "We carry books what did you think?" -> "books, what"
* s3-st2p  - "price for bow and arrows" -> "a bow"
           - Now makes an appropriate comment if shot with the bow (instead of
             always saying a bow would cause more damage).
* s3-tc    - "beautiful." -> "beautiful?"
           - Made it so some people wouldn't come back from beyond the screen
             after the parade.
* s4-1st   - "headback" -> "head back"
* s4-dg    - "altar." -> "altar?"
* s4-end   - "dink is a hero! we must go tell the others!" -> "Dink", placed
             above correct character.
           - "bye, dink" - "Bye, Dink."
* s4-h2p1  - Dink can no longer be frozen forever if talk to both characters.
* s4-h2p2  - "I'm to hungry" -> "too"
* s4-sign3 - "Here ye Here ye ..." -> "Hear ye, hear ye ..."
* s4-st2p  - "not to many here" -> "not too many here"
           - "Hows the fur trading" -> "How's"
* s5-end   - "greatfull" -> "grateful"
* s6-g2    - "Is that you up there dink?" -> "Dink"
* s6-sign5 - "carefull" -> "careful"
* s6-st1p  - One of the lady's lines appeared yellow over Dink's head.
* s6-vend  - Raised vendor's hp to 50 from 5 so hit quip will probably appear.
* s7-mil   - "honerable" -> "honorable"
           - "then I every was" -> "than I ever was"
* s8-da    - "Congradulations!" -> "Congratulations!"
           - "To bad" -> "Too bad"
* s8-duck3 - Removed redundant die procedure.

Map Changes in v1.08 (Talmadge Bradley III)

* 3   - stairs - play stair sound
* 26  - tree - nohit
* 27  - tree - nohit
* 30  - tree - nohit
* 31  - tree - nohit
* 35  - stuffed slayer - no hardness
* 58  - tree - nohit
* 59  - tree - thorn script attached
* 62  - tree - nohit
* 63  - tree - nohit
* 64  - tree - nohit
* 85  - stairs - play stair sound
* 90  - tree - nohit
* 91  - tree - nohit
* 96  - tree - nohit
* 123 - tree - nohit, touch damage 4
* 155 - tree - nohit
* 156 - tree - nohit
* 158 - tree - nohit
* 159 - tree - nohit
* 160 - tree - nohit
* 165 - heart - hard
* 182 - stairs - play stair sound
* 189 - tree - screenmatch problem
* 189 - tree - nohit
* 190 - tree - nohit
* 191 - tree - nohit
* 192 - tree - nohit
* 194 - fixed bleeding boxes/table
* 218 - bush - nohit
* 222 - tree - nohit
* 224 - tree - nohit
* 238 - Changed que of Dead Dragon Carcass
* 243 - hardness hole
* 248 - stairs - play stair sound
* 253 - bush - nohit
* 254 - stairs - play stair sound
      - savebot - hit
* 273 - bushes - nohit
      - tree - no hardness
* 275 - tree didn't screenmatch onto the screen above it
* 285 - bush - nohit
* 305 - tree - no hardness, nohit
* 310 - bush - no hardness
* 320 - grass - removed barrel scripts
      - rock - background sprite
* 337 - bush - nohit
* 342 - three trees - no hardness
* 372 - bush - no hardness
* 375 - Removed fire tiles from under tree
* 379 - trees screenmatched properly
* 381 - tree - no hardness
* 396 - trees - nohit
* 397 - trees - nohit
* 407 - fence - wrong depth que
* 408 - added savebot
* 437 - gave henchmen-bugs normal pillbug scripts, and set to use visions.
* 442 - Removed alk tree script from the tree, so nuts did not appear out of
        thin air when hit with a fireball.
* 460 - tree - nohit
* 461 - trees - nohit
* 462 - tree - nohit
* 521 - non-burning tree, bushes - nohit
      - removed en-pill2 script from duckhead
* 522 - tree, bush - nohit
* 523 - stumps - nohit
* 527 - right tree - no hardness
      - pillbug underneath - stuck in hardness
* 532 - bush - nohit
* 538 - Gave empty box correct script
* 535 - stumps - nohit
      - rock - no hardness
      - tree - appears correctly after burned
* 552 - tree - nohit
* 555 - bushes - nohit
* 557 - bush - nohit
* 569 - changed savebot from nohit to hit 
* 584 - non-burning tree - nohit
* 591 - bush - nohit
* 598 - tree and bushes - no hardness
* 616 - tree - nohit
* 617 - door quirk
* 623 - bush - nohit
* 624 - tree - nohit
* 634 - hardness hole
* 649 - trees - nohit
* 653 - bush - nohit
      - fixed unaligned hill (even though you can't see it in the game...)
* 660 - bush - no hardness
* 663 - left tree - no hardness
      - changed tree by fence from background object to person/creature
      - changed potion from hard to not hard 
      - slayer has death sequence
* 681 - tree and bushes - nohit
* 683 - changed dirt from person/creature to background object
* 691 - tree has acceptable depth que
* 714 - removed sign scripts from grass
* 715 - removed sign scripts from grass
* 744 - fixed depth que of bushes being 405
* 745 - same as above
* 748 - sign - no hardness
* 759 - sign - nohit
* 762 - poles, fences - nohit
* 763 - poles, fences - nohit

Changes in V1.07

* If the parm "-noini" is used from the command line it won't try to write the
  dinksmallwood.ini in  the windows root dir.  Caused problems with NT security
  for someone.
* Typing dink.exe from the DOS prompt now works under Windows 2000
* Dinkedit now runs under Win2000
* Made Mog easier to kill
* Fixed problem where loaded scripts could stay in memory after quitting the
  game
* Changed fast file cleanup to happen on shutdown, not after each file was
  closed
* Added new Mog and End Boss scripts that should fix game freezes if he got hit
  again after being dead - thanks to Michael Braecklein for the fix (even
  though it was wrong.. :) )
* Font object is now released properly on exit
* Alt-D (debug mode) now shows two lines instead of 1, makes it easier to see
  what's going on
* Error messages from Dink and Dinkedit like "you entered a bad -game dir" are
  handled a bit different, I think I was causing weird problems before with the
  order that I was shutting stuff down in.  Hard to say.
* Fixed some sound problems.

NOTES:

* In Windows 2000 sometimes the windows GUI kind of hangs after returning from
  playing Dink, if you wait 10 seconds or so it comes back, I have no idea why
  this is happening, I'm restoring the graphic mode, cooperative mode etc.  I
  can't switch to using my new DirectX8 code without re-doing everything so I
  really don't know how to fix this problem.  Might be a multi-mon thing.

Changes in V1.06 (the freeware full version - all newer versions are also)

* Removed copy protection. I hope I didn't break anything.. the protection
  is very complicated, but I wanted to retain the ability to play CD music
  if an original Dink CD is inserted.  So some of the CD check code is still
  there.. it just won't stop the game.
* Fixed the prompt box in Dinkedit to not have a giant black splotch on it.
* Added new midi in tavern (if CD is not inserted it will play)
* Added new midi in bonca caves (if CD is not inserted it will play)
* Added another not so hidden magic potion near Terris (game balance issue)
* Recompiled everything using Directx 7 
* Bowman in Kernsin now gives better directions on how to operate the bow
* Changed strength/defense on a few enemies, making them easy to kill in
  most cases.  
* Added ability for DMOD makers to run a script for nearly ANY key on the
  keyboard.  It works just like button6.c, but the filename would be key-80.c
  for key P for example.  Debug mode now shows which keys are hit to make it
  easier to figure out what the numeric format for the key is.  Dink keys are
  not remappable, like punch, spacebar and escape.  6 and 7 also aren't.
  (internal thing with the joystick..don't ask)  But most other keys are
  including F1-F12, the numpad, tilde and even scroll lock if you really
  want to.
* Rebalanced more stuff and added more midi.  I think overall the game plays
  better now - not a real easy boss and than a real hard boss.  Overall
  the game is much easier.  I think the story is easier to enjoy this way.

Changes in V1.05:

New script commands:

sound_set_survive( sound ); - lets you make a sound live past a screen.  Use
                              with looping to make digital music!

sound_set_vol( sound, level) - Lower a sounds volume.

sound_set_kill(sound) - Kills a 'survive' sound.

kill_all_sounds() - Kills all 'survive' sounds.

copy_bmp_to_screen( file )   - Just like it sounds.  I do these with the
                               bigmap.bmp so I can animate the little ship
                               over it. A good way to go, no wasted memory
                               on huge ass sprites.

Other changes:

* playsound now returns the # of the sound created.
* show_bmp now reads the .bmps pallete and switches to it.  (better looking
  stills!)
* Move() now works with Text created with say_xy.
* Fixed bug where if icons were not preloaded (which they are in Dink) it
  would crash when drawing the status. (now it will load them instead)
* Time recorded is more accurate, because it includes DEATH'S also now.
* Max SET_SPRITE commands for dink.ini upped to 600 from 500.
* Max sequences upped to 1000 from 900.
* added playmidi command to dink.ini.  This let's you play a song while
  dink is loaded.  Check the dink.ini in Mystery Island for an example.

Major changes in V1.04:

* Problem with vewing stills (such as the map) on some video cards was
  fixed.

* Super fire ball now burns trees with hidden stairs/etc correctly. (didn't
  notice before because at the stage of the game where you get this weapon,
  there are no more 'secret trees')

* Fixed losing a level raise from walking off the screen too quick.

* Added initfont() dinkc command.  You can set a custom font this way.  It
  does have to be in the Windows fonts dir, though. (this was added to make
  international translations easier)

Minor changes:

* included updated FFCREATE.EXE tool for developers, squishes a whole dir of
  .bmp's into one dir.ff file for dink to read.  Copy this over your old
  one, wherever it is. (if you aren't making Dink worlds, don't worry about
  it! <g> )

* Fixed where you could buy "Speed boots" and not get it because inventory
  was full.. same thing with Super Fire Ball.

* Fixed some hardness holes.

* CD check when running an add-on works a little better, before you got a
  blank screen if the CD wasn't in.

* Showing stills with an optimized pallette will be in the next version.  I
  need to add some new control methods as well. (to make nifter non dink
  related arcade sequences)

* Aunt says more after game is won.

* Added script to the well on 'Treasure Island'

* Fixed some continuity problems in the beginning.  (involving
  the old lady's duck especially)

* Included a slightly updated dinkc.txt.  

Major changes in V1.03:

* Removed all references to Shaurrie Whyte's music, turns out she did not
  own the copyright to the songs she 'composed', the REAL copyright holders
  are allowing us to fix it by issuing this patch, which replaces all of
  her songs. (4)
* Scripts load quicker (Turned off a few MSVC++ 'Optimizations'...)
* Can fix damaged saved files automatically, it will delete 'damaged' items
  from your inventory, so the game will not crash when you hit enter.
* Fixed HUGE memory problem with draw_hard_sprite(); if a sprite was partly
  off screen, it would draw it's hardness in random memory, this caused
  a few crashes and caused the above phenom. (thanks to Travis Roya 
  for giving me the instructions on how to  recreate it, I was stumped!)
* Removed a tree that had stairs to an unfinished area and let you walk
  around the map in illegal places.

Minor changes:

* The action STOPS when you are prompted to assign attributes from a level
  raise. (I must have screwed this up just before we printed somehow..)
* The bow shop guy gives clues about Bow lore now.
* Fixed a place where a Goblin says Dink's line.
* Fixed a few 'hardness holes'.
* Added some monsters near the mine shaft near Terris.
* Wanderer near Goodheart castle pops up less often.
* A few shells and things don't disappear from waves now.
* Fixed an invisible chest that gave a potion that couldn't be reached.
  (may not work correctly on old saved games though)
* Added list of preordered people and beta testers to the credits.txt - we
  were going to before but simply forgot!!!
* Added a clue on how to get into the Duck Idol area.
* The guy who sells "Herb boots" now shows the price.
* A 'news' item on a poster found in most healers was fixed, didn't show up
  before.
* Added a little text to the castle guards.
* Fixed a bush that was being drawn to the background instead of being a
  sprite.

Thanks to all of those who emailed about problems helped me work them
out by attaching saved games and such, I really appreciate it.

-Seth (seth@rtsoft.com)


