List of weird stuff still present in 1.08 scripts
When 1.08 came out, it was more than an update to the engine, it also included a million minor fixes to the included scripts primarily by Tal. There were also some balance changes applied, such as a new savebot in Stonebrook. Even so, there are still a few things i've noticed so far that flew under Tal's radar.
* During Martridge's trial in the Bonca cave, even after defeating the monster Dink will continue to say "I don't like this one bit!" with the ominous sound/midi playing.
* Arturous at The Best in Bows in KernSin will sell you multiple bow and arrow sets, with no way to get rid of them. His script was updated for 1.08 to detect if an arrow hit him, but this seems to have been overlooked.
* The Mordavia scroll should really be a one-use consumable item using the caveguy global somehow.
Funny things that don't deserve a fix
* Chealse and the librarian in KernSin are set to brain 9 (standard enemy) rather than 16 (walk-around NPC) meaning if you shoot either of them with a fireball they'll follow you menacingly.
* Lyna has the AlkTree script during the Milder cutscene, meaning if you unfreeze and punch her she'll drop AlkTree nuts.
* The above cutscene can trigger after Milder's supposed to be married or dead.
* It's possible to die while in a choice menu, exit the choice menu and walk around for a few seconds, although this might be an engine bug anyway.
If you've noticed similar script stuff along these lines please post!
* During Martridge's trial in the Bonca cave, even after defeating the monster Dink will continue to say "I don't like this one bit!" with the ominous sound/midi playing.
* Arturous at The Best in Bows in KernSin will sell you multiple bow and arrow sets, with no way to get rid of them. His script was updated for 1.08 to detect if an arrow hit him, but this seems to have been overlooked.
* The Mordavia scroll should really be a one-use consumable item using the caveguy global somehow.
Funny things that don't deserve a fix
* Chealse and the librarian in KernSin are set to brain 9 (standard enemy) rather than 16 (walk-around NPC) meaning if you shoot either of them with a fireball they'll follow you menacingly.
* Lyna has the AlkTree script during the Milder cutscene, meaning if you unfreeze and punch her she'll drop AlkTree nuts.
* The above cutscene can trigger after Milder's supposed to be married or dead.
* It's possible to die while in a choice menu, exit the choice menu and walk around for a few seconds, although this might be an engine bug anyway.
If you've noticed similar script stuff along these lines please post!
The original bomb script has a bug in it that can produce some weirdness:
A bomb bug
Basically, if you place a bomb down and change screens before it explodes, if the new screen has the a sprite on it with the same active sprite number as the bomb on the previous screen, that sprite will glitch out and explode like the bomb should have.
This happens because dam-bom.c is spawned from item-bom.c so it survives a screen change. The fix is script_attach(0) at the start of dam-bom so it doesn't survive a screen change.
This bug is probably in almost every dmod, if authors didn't bother to fix it.
EDIT: @Yeoldetoast, I sent you a DM, asking an engine related question.
A bomb bug
Basically, if you place a bomb down and change screens before it explodes, if the new screen has the a sprite on it with the same active sprite number as the bomb on the previous screen, that sprite will glitch out and explode like the bomb should have.
This happens because dam-bom.c is spawned from item-bom.c so it survives a screen change. The fix is script_attach(0) at the start of dam-bom so it doesn't survive a screen change.
This bug is probably in almost every dmod, if authors didn't bother to fix it.
EDIT: @Yeoldetoast, I sent you a DM, asking an engine related question.
I have been collecting a list small Dink bugs. I'm gonna post some of theseā¦ after your contest is over
- Besides the scene with Milder and Lyna, the scene with the Milder at the tavern can be triggered after he's traveled to the Darklands or dead.
- The pie at the Dink's house can survive the house fire.
- On the screen where knights are robbing a traveler, you need to only kill the one starting on the left to 'save' the traveler.
- On the screen where knights are robbing a traveler, the scene uses two global variables: one to check if player has seen the scene and one to check if the traveler is safe. They both start at 0 and are updated to 1 when the knight starting on the left is killed. Besides wasting a global variable, this means that you need to only kill the left knight to get the traveler to thank you for saving him. It also means that as long as the left knight is alive, you can reset the scene by just walking off the screen and coming back.
- The conversations with Maria about saving Mary and saving the world are mutually exclusive.
- Jack's soul... uh, I mean script will be left haunting Dink after his death, because in uses script_attach(1000) but does not kill itself.
- When fighting Bishop Nelson and his band of merry dragon cultists, if you let Mary die, your HP drops to 0. However, you can save yourself with elixir or a nut, which leaves you stuck as you need to talk to her after the fight.
- The same thing can happen at the Joppa Isle fight, except you won't be stuck.
- During the dragon figth at the Joppa Isle, you can go back to the shop. The script tries to prevent this... by using a nonexistent sp_prop function.
- The throwing axe vendor is not freezed during conversations.
- The screen isn't locked during the Seth fight.
- Chairs at the Edge of the World's church have Kernsin's fountain's script.
- Most talkable things also have a hit procedures and no script sets sp_nohit during conversations. Therefore when talking to pretty much anybody, if they are hit, you'll remain frozen in place. If you want to try it out, the easiest way to intentionally trigger this is by shooting them with the acid rain and then talk to them.
- Gray boncas target the enemy with lowest active sprite number (as opposed to choosing a random target).
- The pie at the Dink's house can survive the house fire.
- On the screen where knights are robbing a traveler, you need to only kill the one starting on the left to 'save' the traveler.
- On the screen where knights are robbing a traveler, the scene uses two global variables: one to check if player has seen the scene and one to check if the traveler is safe. They both start at 0 and are updated to 1 when the knight starting on the left is killed. Besides wasting a global variable, this means that you need to only kill the left knight to get the traveler to thank you for saving him. It also means that as long as the left knight is alive, you can reset the scene by just walking off the screen and coming back.
- The conversations with Maria about saving Mary and saving the world are mutually exclusive.
- Jack's soul... uh, I mean script will be left haunting Dink after his death, because in uses script_attach(1000) but does not kill itself.
- When fighting Bishop Nelson and his band of merry dragon cultists, if you let Mary die, your HP drops to 0. However, you can save yourself with elixir or a nut, which leaves you stuck as you need to talk to her after the fight.
- The same thing can happen at the Joppa Isle fight, except you won't be stuck.
- During the dragon figth at the Joppa Isle, you can go back to the shop. The script tries to prevent this... by using a nonexistent sp_prop function.
- The throwing axe vendor is not freezed during conversations.
- The screen isn't locked during the Seth fight.
- Chairs at the Edge of the World's church have Kernsin's fountain's script.
- Most talkable things also have a hit procedures and no script sets sp_nohit during conversations. Therefore when talking to pretty much anybody, if they are hit, you'll remain frozen in place. If you want to try it out, the easiest way to intentionally trigger this is by shooting them with the acid rain and then talk to them.
- Gray boncas target the enemy with lowest active sprite number (as opposed to choosing a random target).
Very cool list! Looks like "sp_prop" was supposed to be there to toggle warps on and off but never got bound in the engine for some reason.
- I just found out that you can save the game while your hitpoints are 0 but your life bar has not yet depleted.
- You can just murder Chealse in front of Renton without him caring.
- Everything about the thief-sideplot in Terris is a bit weird:
* If you only talk him once (i.e. select "Ask what he does" without talking again and choosing "Offer to help him out") and leave the bar, the thief won't appear on the bar anymore, making the whole thievery-scene pretty easy to miss.
* The house you enter is rather unique as has internal (unusable) doors, and is the only non-castle building in the game where single floor is implied to span multiple screens (even though you only visit one screen)
* The guards arresting the thief know Dink by name, althrough you can complete the thing immediately after arriving Terris (and thus before doing anything to gain fame).
* The game sets a global variable "&tombob" to 1 after the arrest, but the variable is never used anywhere.
- And then there's the classic, as cited in quotes.txt:
"Hey, the pigs are dead, but I can feed them!" - Seth
"That RULES!!" - Pap in response
- You can just murder Chealse in front of Renton without him caring.
- Everything about the thief-sideplot in Terris is a bit weird:
* If you only talk him once (i.e. select "Ask what he does" without talking again and choosing "Offer to help him out") and leave the bar, the thief won't appear on the bar anymore, making the whole thievery-scene pretty easy to miss.
* The house you enter is rather unique as has internal (unusable) doors, and is the only non-castle building in the game where single floor is implied to span multiple screens (even though you only visit one screen)
* The guards arresting the thief know Dink by name, althrough you can complete the thing immediately after arriving Terris (and thus before doing anything to gain fame).
* The game sets a global variable "&tombob" to 1 after the arrest, but the variable is never used anywhere.
- And then there's the classic, as cited in quotes.txt:
"Hey, the pigs are dead, but I can feed them!" - Seth
"That RULES!!" - Pap in response
On Joppa Island the girl can die and you can grab a small heart from the barrel before Dink's life hits zero to stop him from dying as he is supposed to if one of the females die.
Yes, the global variable &hero is also never used. And I think the same goes for &town1 global variable.
And the global variable &mlibby might have had further plot developments if the m meant "meet" or even "marry" - something to do with Port Town?
Why wasn't the golden apple ever available on Windemere island? Another sub-plot not used?
Where does Lyna live? Where did Milder live if he was from the same village as Dink?
The things that might have been...
Yes, the global variable &hero is also never used. And I think the same goes for &town1 global variable.
And the global variable &mlibby might have had further plot developments if the m meant "meet" or even "marry" - something to do with Port Town?
Why wasn't the golden apple ever available on Windemere island? Another sub-plot not used?
Where does Lyna live? Where did Milder live if he was from the same village as Dink?
The things that might have been...
Something i've found interesting is that some NPCs are initted with a local variable of a proper name that doesn't end up being mentioned anywhere in character dialogue. I do wonder if the RTSoft crew based them upon real people they knew, like Seth did with his family members in the KernSin cabinet shop.
Also just realised I had forgotten about this.
Also just realised I had forgotten about this.
@Robj:
Basically, if you place a bomb down and change screens before it explodes, if the new screen has the a sprite on it with the same active sprite number as the bomb on the previous screen, that sprite will glitch out and explode like the bomb should have.
This happens because dam-bom.c is spawned from item-bom.c so it survives a screen change. The fix is script_attach(0) at the start of dam-bom so it doesn't survive a screen change.
dam-bom.c also fails to call kill_this_task, so every bomb will take one script buffer slot permamently.
Edit: s3-mog, dam-bom2 and s4-end also fail to call kill_this_task
Basically, if you place a bomb down and change screens before it explodes, if the new screen has the a sprite on it with the same active sprite number as the bomb on the previous screen, that sprite will glitch out and explode like the bomb should have.
This happens because dam-bom.c is spawned from item-bom.c so it survives a screen change. The fix is script_attach(0) at the start of dam-bom so it doesn't survive a screen change.
dam-bom.c also fails to call kill_this_task, so every bomb will take one script buffer slot permamently.
Edit: s3-mog, dam-bom2 and s4-end also fail to call kill_this_task
> "dam-bom.c also fails to call kill_this_task, so every bomb will take one script buffer slot permamently."
Yeh that's the reason the bug happens. Script_attach(0) fixes it by attaching it to the screen instead of sprite 1000.
Yeh that's the reason the bug happens. Script_attach(0) fixes it by attaching it to the screen instead of sprite 1000.
It appears dam-bom2 isn't used anywhere. There's a lot of weird and interesting stuff in the other unused scripts too, particularly the Spice Girls one.
s7-boss spawns dam-bom2.
Apparently the barmaid was meant to move faster when Dink is fighting the guards:
The first issue is that speed and timing are unconditionally reset immediately. An other issue is that &temp4hold is set to 1 when talking to the barkeep but resets to 0 at the end of any conversation choice, so even if the latter speed/timing changes are put inside an else statement, the barmaid will only move faster when Dink is talking to the barkeep.
Apparently the barmaid was meant to move faster when Dink is fighting the guards:
if (&temp4hold == 1) { //dink is gonna fight sp_speed(¤t_sprite, 2); sp_timing(¤t_sprite, 0); } sp_speed(¤t_sprite, 1); sp_timing(¤t_sprite, 33);
The first issue is that speed and timing are unconditionally reset immediately. An other issue is that &temp4hold is set to 1 when talking to the barkeep but resets to 0 at the end of any conversation choice, so even if the latter speed/timing changes are put inside an else statement, the barmaid will only move faster when Dink is talking to the barkeep.
Oops, indeed it is. Another minor thing is that s3-chick.c, the script for the KernSin fountain girl has a missing comma in a say_stop meaning you never find out her name is Christina until later from the mayor, which then makes the interaction somewhat odd.
> The pie at the Dink's house can survive the house fire.
Another peculiarity is that the scripts for the furniture have text along the lines of "Oh no it's burning up!", if you talk to them while the house is ablaze. Of course, this section is all a cutscene meaning you won't see it unless you unfreeze in the midst of it.
Another peculiarity is that the scripts for the furniture have text along the lines of "Oh no it's burning up!", if you talk to them while the house is ablaze. Of course, this section is all a cutscene meaning you won't see it unless you unfreeze in the midst of it.
Just so we're clear, my contributions to 1.08 - which, mind you, were made about half of my life ago now - involved very little, if any, actual bug fixes.
As a matter of fact, aside from maybe a thorough playtest and general hunt for bugs, I basically filled a few hardness holes in the map and painstakingly combed through the scripts for spelling and grammar errors, of which there were many.
I hope I didn't make any egregious oversights or unnecessary "corrections," though I probably did mercilessly abuse the Oxford comma. It likely isn't worth a comprehensive do-over - I'm generally very meticulous and obsessive when I do bother to do anything.
My comfort and familiarity with scripting and coding conventions is tenuous at best. Though I spent a lot of time back in the day combing through DinkC scripts (thanks in part to a long-lost decompiler) and I still have an inexplicable obsession with analyzing ScummVM Github commits, I would be pushing my abilities to and likely past their limits to even Frankenstein functional scripts together. Though I could possibly endeavor to fix a longstanding bug or two through some sleuthing mixed with trial and error, it would probably be best left to some other community diehard.
Though my contributions are comparatively slight, I won't lie, it kind of sucks to see Skull credited above me (and for what?) in the Dink HD credits - that guy's insistence that my lack of a D-Mod release made me a less valuable community member was a substantial contributing factor in dialing back my presence to near-nonexistence. Life and adulthood interfered a lot too, in fairness.
As a matter of fact, aside from maybe a thorough playtest and general hunt for bugs, I basically filled a few hardness holes in the map and painstakingly combed through the scripts for spelling and grammar errors, of which there were many.
I hope I didn't make any egregious oversights or unnecessary "corrections," though I probably did mercilessly abuse the Oxford comma. It likely isn't worth a comprehensive do-over - I'm generally very meticulous and obsessive when I do bother to do anything.
My comfort and familiarity with scripting and coding conventions is tenuous at best. Though I spent a lot of time back in the day combing through DinkC scripts (thanks in part to a long-lost decompiler) and I still have an inexplicable obsession with analyzing ScummVM Github commits, I would be pushing my abilities to and likely past their limits to even Frankenstein functional scripts together. Though I could possibly endeavor to fix a longstanding bug or two through some sleuthing mixed with trial and error, it would probably be best left to some other community diehard.
Though my contributions are comparatively slight, I won't lie, it kind of sucks to see Skull credited above me (and for what?) in the Dink HD credits - that guy's insistence that my lack of a D-Mod release made me a less valuable community member was a substantial contributing factor in dialing back my presence to near-nonexistence. Life and adulthood interfered a lot too, in fairness.
I feel like I/we solicited a list of bugs from the community prior to hammering out 1.08, so to see a wide variety of bugs listed here - many of which are easily found and replicated - is quite surprising, and honestly a bit frustrating!
I just looked through some of the scripts again for fun...
Honestly, I think nearly every bit of it could use a slight rewrite - one that retains the atmosphere while expanding on the thinner sequences of dialogue. That might take more effort than it's worth, but I think it could be a fun endeavor.
I did notice an instance in which one of the wanderers uses "populous" when the intended word choice is clearly "populace." Barf!!
It's enough to make me wonder if another comprehensive script sweep is worth running by the Robinson cabal. I have better things to be doing with my life, but I've never been known for getting my priorities in order. Lol.
Honestly, I think nearly every bit of it could use a slight rewrite - one that retains the atmosphere while expanding on the thinner sequences of dialogue. That might take more effort than it's worth, but I think it could be a fun endeavor.
I did notice an instance in which one of the wanderers uses "populous" when the intended word choice is clearly "populace." Barf!!
It's enough to make me wonder if another comprehensive script sweep is worth running by the Robinson cabal. I have better things to be doing with my life, but I've never been known for getting my priorities in order. Lol.
I missed you TAL.
I'm not wearing pants.
I'm not wearing pants.
Any reasonable person should dedicate much of their day - their life, even - to not wearing pants.
> (and for what?)
I believe it was a bug report regarding the purple boncas not having a special frame designated in dink.ini causing their attacks to be ineffective. i.e. an oversight in 1.08. Heh.
I believe it was a bug report regarding the purple boncas not having a special frame designated in dink.ini causing their attacks to be ineffective. i.e. an oversight in 1.08. Heh.
I think I would have rather it not been answered, that being the case.
Interesting by some metric, though.
Interesting by some metric, though.
Well, it illustrates that the order of credits is without rhyme or reason, rather than sorted by gravity of addition. I'm on that list for noticing that a slider was backwards, for example.
I had already inferred that much I don't get why it wouldn't simply be alphabetical, but as with many things Seth, there's just no rhyme or reason for the quirks!
Can I be added to the credits for my contributions to the community as a whole please.
Sabretrout, you finished that sandwich yet?
Weirdly, I can actually commit to this now.
you always could. let's see it, then
At this point, I belive SabreTrout will never do that stream, no matter how many nag him about it.
Could someone please explain why watching someone else play a computer game of any kind is entertaining? I just don't get it. The idea of streaming game playing escapes me entirely. It is not that I am opposed to it in any way. In fact, anything that (in this case) celebrates and encourages others to explore our favorite RPG hero is fine with me.
Maybe it is just that I am too much of a loner, but I really just don't get it.
Maybe it is just that I am too much of a loner, but I really just don't get it.
because they don't just play the game
you can bully them in the stream chat box
@yeoldetoast:
you can bully them in the stream chat box
Well, that is still something "not for me". It sounds almost painfully dull.
you can bully them in the stream chat box
Well, that is still something "not for me". It sounds almost painfully dull.
@Skurn:
because they don't just play the game
Well what else do they do that could possibly make it interesting?
because they don't just play the game
Well what else do they do that could possibly make it interesting?
Weirdly, I can actually commit to this now.
29th October?
???????
29th October?
???????
@SlipDink - Sometimes you feel nostalgic about some old game but don't have time to play it, so you watch/listen to it while working
With certain games you might be familiar with, it can also be interesting to see how people play them differently.
With certain games you might be familiar with, it can also be interesting to see how people play them differently.
@Skurn
If you don't answer, you'll likely not achieve what you want.
@SabreTrout
Okay, fine day by me. What time? I'll be curious if you'll actually live up to your promise this time.
If you don't answer, you'll likely not achieve what you want.
@SabreTrout
Okay, fine day by me. What time? I'll be curious if you'll actually live up to your promise this time.
I mean, it'll be a late afternoon / early evening job I imagine.
@drone1400
With certain games you might be familiar with, it can also be interesting to see how people play them differently.
Well, that is something that does seem mildly interesting to me, I must admit, but I still don't see how I could sit through watching a long session of someone else's game play. Anyway, thanks for taking the time to offer a pretty good explanation that makes some sense (to me anyway).
With certain games you might be familiar with, it can also be interesting to see how people play them differently.
Well, that is something that does seem mildly interesting to me, I must admit, but I still don't see how I could sit through watching a long session of someone else's game play. Anyway, thanks for taking the time to offer a pretty good explanation that makes some sense (to me anyway).