The Dink Network

New Dev File: Skeleton Gelatin

June 30th 2023, 01:01 PM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
What's this?

That's right, I've slipped into the back alleyways of the DN and broke the age old rule of of serving you some GELATIN, so you can have a strong SKELETON.

It's good for your bones.

It's good for your fresh dmods.

It's highly optimised.

It's the most bug-free barebones skeleton available with:
- Fully optimised dink.ini, re-structured, commented, and 130+ set_sprite_info lines removed (duplicates and other terrible ones that shouldn't be there)
- Robj's custom hard.dat re-write, allowing Dink to walk against things without encroaching into them too much. No where to slip through hardness, and all inner and outer islands & match-able beach tile combinations match with hardness too!

Read the dmod.diz upon install for even more info.

*Runs away into the forest, slipping away from the Goodheart guards*

June 30th 2023, 01:18 PM
peasantmp.gif
Skurn
Peasant He/Him Equatorial Guinea duck bloop
can't flim flam the glim glam 
#BuryTheOldBones
June 30th 2023, 03:21 PM
wizardb.gif
Bluedy
Peasant He/Him Romania bloop rumble
I like Frutti Fresh 
Can you upload it in .zip format aswell? I got Dink HD installed and it doesn't seem to support installation of dmods outside of the dmod browser.
June 30th 2023, 03:26 PM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
Sure, incoming zip file version. I'll upload it momuntarily.

EDIT: Done. Make sure to click versions on the file page to see it.

EDIT2: Actually, I just made the main version .zip format anyway. There's no point it being a .dmod. So there's only the 1 version now.
June 30th 2023, 04:33 PM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
If anyone's already downloaded it. Make sure to re-name "sounds" folder to "sound".

Silly me.

I already uploaded the update to correct that.
July 2nd 2023, 11:26 AM
spike.gif
SlipDink
Peasant He/Him United States bloop rumble
2nd generation. No easy way to be free. 
I don't suppose that you have a more elaborate change-log file that I could refer to (aside from the notes you've already made available on the topic) do you?

I've gone back to working on my enhanced version of Bluedy's Northern Lands (known as Dink's First Adventure) and would hate to have to restart (for example) the dink.ini file from scratch. On the other hand, I'd hate to run into any problems because I did not replace or merge some of "my" files with some of the changes and fixes you made.
July 2nd 2023, 01:48 PM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
I don't suppose that you have a more elaborate change-log file that I could refer to (aside from the notes you've already made available on the topic) do you?
- Fully optimised and clean up of dink.ini. See bottom of dink.ini to un-comment extra original Dink graphics that aren't usually loaded by default, if you want to use them.

- Fix applied to start-2.c that fixes a bug that draws a screen twice on game load (a bug with set_mode that has been present forever but noticeable only if you spawn a "load game detection" script in main.c)

- Duplicate sound removed from start.c

- Useless un-used 'required' global variables removed from main.c.

- Re-write of hard.dat, so it's not 'blocky'. Dink can now walk against things, without encroaching into them. All combination of beach tiles that graphically match will match with the hardness too.
No pesky lines that don't line up properly where Dink can slip through.
Feel free to edit any of the empty hard tiles in the middle of the hard.dat (you'll see what I mean if you open the hard tile selector in game), for your own custom hard tiles.
Open the hard tile selector in your dmod editor, Pick a blank tile from the middle section of blank hard tiles, stamp it, and then edit it. That's the correct way to do it without messing up the hardness of all the other non-hard tiles.

- Using Start, continue, and quit buttons from Mike Snyders skeleton (I think that's the original source, unless he used them from somewhere else as well)

- Dink.ini optimisations, removing 136 set_sprite_info lines and cleaning it up/re-structure.

The skeleton is more meant for starting a fresh dmod, but if you wanted to try to import some stuff into an existing dmod. I would first back up each file you try to replace and then load up the dmod and make sure it's all good. As part of the dink.ini optimsations, some of the hardboxes have changed slightly due to some set_sprite_info lines that were removed that Seth included that are barely different from default (when no sprite_ino is decalred). Most of the time this is houses and stuff, which is a waste of set_sprite_info since authors manually tiles those anyway, and it won't affect anything. Or other miscellanous sprites that aren't usually set to hard.

As for the hard.dat, it has been re-written. But when replacing a hard.dat in an existing dmod, any manually stamped hard tiles (where you've copy and pasted hardness that is different to the normal default hard tile) obviously will not be updated.

If your dink.ini is having no issues an an existing dmod, I don't recommend swapping it.

You can try backing up hard.dat, and swapping the new one in to see if your tiles update.. but again, I don't know if they all will without re-stamping the tiles, for an existing dmod.
the start-2.c can be replaced easily for the bugfix mentioned above (even if you don't have a load_game detection script in main.c it won't hurt to apply this bugfix).
The duplicate sound removed from start.c is loaded into sound slot 25, and it's a duplicate of 32. If you want to remove 25 manuallay, you can do that (it's a waste having 2 of the same loaded).
Usless globals removed from main.c are: &speed and &timing. If these are in the 'required globals list' you can remove them, they are used for nothing. Some dmod skeletons already removed them but you can check.
Also &dinklogo is removed form the required global variable list, and instead just declared "int" as a local variable in start.c(the only script it's used in). No need for that being a global.

For all the individual dink.ini changes see here: dink.ini optimisations
July 2nd 2023, 06:57 PM
peasantmp.gif
Skurn
Peasant He/Him Equatorial Guinea duck bloop
can't flim flam the glim glam 
Open the hard tile selector in your dmod editor, Pick a blank tile from the middle section of blank hard tiles, stamp it, and then edit it. That's the correct way to do it without messing up the hardness of all the other non-hard tiles.

i thought you assigned all the non-hard stuff to hard tile 0 so itd be impossible to duck it up

edit: oh wait, that was using ebildrone's windinkedit i think. yeah use that too so you dont duck it up
July 2nd 2023, 07:03 PM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
Yeh, basically all the extra tiles that aren't supposed to have have hardness are assigned to tile 0.
So basically just make sure to choose and stamp a blank hard tile from the hard tile selector before editing it(when making your own custom hard tiles). If you just edit a grass tile for example without first selecting a blank hard tile from the selector, that hardness will appear EVERYWHERE.
Or yeh, use Drone's latest windinkeditplus version, he made it so you can't edit hard tile 0, so indeed, you cannot duck it up.
July 3rd 2023, 01:00 AM
peasantmp.gif
Skurn
Peasant He/Him Equatorial Guinea duck bloop
can't flim flam the glim glam 
maybe i should get around to sorting out my dink files situation since i made a few pc upgrades and one of those was getting an m.2 specifically to stick windows 10 on (and you know, other stuff that has to be there for shit to work). one broken thing is the dink installation path. always get registry errors and have to locate the game installation when doing anything.

my dink folder is a duckin mess, tho. but trying out the new editor version and this skeleton might be neat.
July 3rd 2023, 10:22 AM
goblins.gif
drone1400
Peasant He/Him Romania
C# nerd 
FYI, you can extract a .dmod file with 7zip or i think winrar just fine.

The .dmod file format is actually just a .tar.bz2 archive.

Although, if I remember correctly, some old dmod-packers didn't respect the .tar file format or the .bz2 file format, forgot which, basically they're missing some empty padding bytes. However, 7zip works fine even with those.
July 3rd 2023, 10:47 AM
spike.gif
SlipDink
Peasant He/Him United States bloop rumble
2nd generation. No easy way to be free. 
Thanks Robj. I'll definitely look through these detailed notes and will apply the changes that I think are "safe" to make in an already active project. Don't worry, I'll be very careful in applying any changes or fixes.

Speaking of worrying, I always worried about &timing and &speed being used somehow internally to the DinkC engine. It is great to know that these two "variable slots" can be "freed up". I sort of wondered if the duplicate use of CAVEENT.WAV had something to do with some kind of internal DinkC engine use too, though I have been braver about experimenting with replacing either 25 or 32 of the "load_sound" commands. I noticed that only 32 was used in the DinkC files in the original game.

Your notes on dink.ini at https://pastebin.com/CABBMKWr and within the file itself are very good too.

I have a question about this statement: "As for the hard.dat, it has been re-written. But when replacing a hard.dat in an existing dmod, any manually stamped hard tiles (where you've copy and pasted hardness that is different to the normal default hard tile) obviously will not be updated." Does "manual stamping" include copying and pasting a tile (or series of tiles) from the tilesets in the tiles directory? As I'm sure you know, many such tiles come with "built in" hardness elements.

Excellent work!
July 3rd 2023, 11:53 AM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
Does "manual stamping" include copying and pasting a tile (or series of tiles) from the tilesets in the tiles directory? As I'm sure you know, many such tiles come with "built in" hardness elements.

Only if you have manually stamped actual hard tiles, or copy pasted hard tiles, then they won't update, since you've chosen alternate tiles. If you've only copy pasted actual map tiles, the hardness should update to the new hardness defined in the new hard.dat once it's replaced.
September 14th 2023, 03:45 AM
custom_robj.png
Robj
Jester He/Him Australia
You feed the madness, and it feeds on you. 
Anyone using this, please note I just updated it.

The only change is the hard.dat. Made a beach hard tile fix.

You can simply just take the new hard.dat out of it and paste it into your existing gelatin skeleton dmod folder, or any other dmod you've started using gelatin and that will also apply the fix, rather than replacing the entire thing.