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 ¤t_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! ) * 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)