Author Topic: My explosive contest entry  (Read 21140 times)

0 Members and 2 Guests are viewing this topic.

Offline aeTIos

  • Nonbinary computing specialist
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3915
  • Rating: +184/-32
    • View Profile
    • wank.party
Re: My explosive contest entry
« Reply #105 on: July 04, 2011, 09:30:33 am »
Too bad. It looks like he is grounded since he's not been on for a month.
I'm not a nerd but I pretend:

Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: My explosive contest entry
« Reply #106 on: July 04, 2011, 12:30:16 pm »
Or he's just been busy in life:
However now he works 10 hours a day, 60 hours a week

Not sure what's going to happen but for now...
« Last Edit: July 04, 2011, 12:30:43 pm by Darl181 »
Vy'o'us pleorsdti thl'e gjaemue

Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: My explosive contest entry
« Reply #107 on: September 03, 2011, 06:54:45 pm »
So I've been playing the version of this you released.

A few things...

this is only a puzzle in beta so I actually am not able to solve it :P
There are ways to solve it, just putting it out there ;D
(At least two methods, tho one's easier to take advantage of than the other)

Also I was wondering if there's a way to add more barrels/objects?  Afaict it's hard-coded into the executable...
(btw, I had to compile from the backup folder.  The included Axe.8xp wouldn't load the level properly :( )

One last thing.  In the backup folder, the latest version (last folder), when I compiled from all the stuff the rope didn't do anything.  It just stretched and moved with the box as if all it were was Line().  idk what's wrong with it...

EDIT: this is the .zip I'm talking about btw http://ourl.ca/12763/238499
« Last Edit: September 03, 2011, 06:56:04 pm by Darl181 »
Vy'o'us pleorsdti thl'e gjaemue

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: My explosive contest entry
« Reply #108 on: September 03, 2011, 06:58:51 pm »
There are multiple ways to solve all of the puzzles, since you gain so much freedom with the explosives.  And yeah, currently the objects are not part of the level code, they have to be coded into the executable.  Also I believe the game loads the level from an appvar created by the level creator, so if you don't have that it might not run.

Also that rope issue might be caused by many different things, but I was probably in the middle of working on the code, or maybe the length of the rope is merely too long, not sure :/

Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: My explosive contest entry
« Reply #109 on: September 03, 2011, 07:28:54 pm »
I'm guessing it's in prgmZEDD but I can hardly tell what's what so yeah :P

Quote from: Zedd Engine.txt
Ropes         Data starts at L1+300
0   X location of rope anchor
2   Y location of rope anchor
4   Length^2 of rope
6   Length of rope
7   Object this rope is attatched to

What program is the data in to check?


Also is there a way to add more, even if it's just #→{pointer} for each value?
« Last Edit: September 03, 2011, 07:30:31 pm by Darl181 »
Vy'o'us pleorsdti thl'e gjaemue

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: My explosive contest entry
« Reply #110 on: September 03, 2011, 07:39:08 pm »
It looks like the program to check is MAPLD, and to add an object use sub(ADD,X,Y,Width,Height,Mass,Sprite).  I believe those arguments are correct, but I'm not 100% sure.

There is not the same type of code for ropes though, but the area it is currently found is in program A:

Code: [Select]
:1→{L1+300}
:35*256→{L1+308}r
:0→{L1+310}r
:35*35→{L1+312}r
:35→{L1+314}
:2→{L1+315}

And it looks like you already found the arguments that these represent :)

EDIT: Also, if a list of objects starts at RAM location N, {N} holds the number of objects, with the first object starting at N+L where L is the length of each entry.  For object addition and removal, I use general purpose routines that are present in ZEDD that work for all of the lists in the game.  Object removal works by copying the last element of the list onto the element to be removed, so you don't need to worry about any object addresses changing unless they are the last, in which case I don't know D:
« Last Edit: September 03, 2011, 07:42:24 pm by Builderboy »

Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: My explosive contest entry
« Reply #111 on: September 03, 2011, 07:53:16 pm »
Ok cool.
I'm guessing it's pixel-for-pixel (As in, no inflation needed on the inputs)?

So it can take up to 300 bytes of data before the ropes...so that's 300/16=~18 objects before it overflows.  Imagine using all those... O.O

For the sprite argument.  Does that count from zero?  Can one just add an extra sprite after the others and reference that?
Vy'o'us pleorsdti thl'e gjaemue

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: My explosive contest entry
« Reply #112 on: September 03, 2011, 07:59:01 pm »
For the object input, it inflates them itself, for the rope however you need to inflate the anchor location yourself, or write a sub to handle it.  I believe there is also 1 more list to handle graphical effects that is located at L1+400, with entries of 8 bytes. 

For the sprite numbers, the number is an offset from a global sprite buffer.  0 is the first sprite in the buffer, 1 is the second ect... 

Offline Freyaday

  • The One And Only Serial Time Killing Catboy-Capoeirista-Ballerino
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1970
  • Rating: +128/-15
  • I put on my robe and pixel hat...
    • View Profile
Re: My explosive contest entry
« Reply #113 on: September 04, 2011, 01:19:20 am »
How many objects can the engine handle then?
Also, is this limit due to speed or size?
In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


I'm a performer at heart; I stole it last week.
My Artwork!

Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: My explosive contest entry
« Reply #114 on: September 04, 2011, 02:02:35 am »
The first byte of object data starts at L1, while first byte of rope data starts at L1+300.  Each is 16 bytes.  300/16 rounds down to 18.  So, due to size.

For the sprites, it looks like I would add on to Str3?  (looking at the hex code at least, [C0C060...])
« Last Edit: September 04, 2011, 11:27:38 pm by Darl181 »
Vy'o'us pleorsdti thl'e gjaemue

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: My explosive contest entry
« Reply #115 on: September 04, 2011, 11:50:04 am »
18 objects is going to be pushing past what the engine can handle anyway, especially if you are still in 6Mhz.  And yeah, sprites are in Str3 if I remember correctly

Offline Freyaday

  • The One And Only Serial Time Killing Catboy-Capoeirista-Ballerino
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1970
  • Rating: +128/-15
  • I put on my robe and pixel hat...
    • View Profile
Re: My explosive contest entry
« Reply #116 on: September 04, 2011, 12:00:33 pm »
Does the game become unplayable at that number of objects, or simply slower?
Spoiler For Anecdote:
The latest Nymless level has 17 mines in it, and is drastically slower than a level with no mines, but it is not only playable, but it makes the no-mine level seem too fast by comparison. Nymless checks for collision with every single mine every step of the collision routine. That's a lot of steps for 17 mines.
In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


I'm a performer at heart; I stole it last week.
My Artwork!

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: My explosive contest entry
« Reply #117 on: September 04, 2011, 12:20:34 pm »
It may or may not be unplayable at 18 objects, because each object that is not moving going into 'sleep' mode and stops checking for collisions itself (although it can still be hit by collisions from others)

Offline Freyaday

  • The One And Only Serial Time Killing Catboy-Capoeirista-Ballerino
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1970
  • Rating: +128/-15
  • I put on my robe and pixel hat...
    • View Profile
Re: My explosive contest entry
« Reply #118 on: September 04, 2011, 12:34:18 pm »
That's an interesting way of doing it. How'd you do that?
In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


I'm a performer at heart; I stole it last week.
My Artwork!

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: My explosive contest entry
« Reply #119 on: September 04, 2011, 04:30:18 pm »
If the velocity of the object is zero, and if there is a floor underneath the object, terminate the object collision code before it gets to the part where it collides with other objects.  It can be really handy as a speed maximizer, for every sleeping objects out of N total objects, you cut N-1 collisions out of the cycles.