Dec 12, 2007 at 1:25 PM
Join Date: Nov 28, 2007
Location:
Posts: 86
You can't change those that easily, let me explain why: the missile launcher subroutine (this is both normal and super) does a object check to see how many missiles there are on the screen:S. P. Gardebiter said:Still Super Missile Launcher level 1 and Blade missing ;P
Pseudocode for super missile launcher lv3:
Code:
obj_supermissile = 0xa
[b]if[/b] (get_number_of_objects(obj_supermissile) <= 3)
[i]shoot()[/i]
Code:
cmp eax, 3
jle shoot
In other words, lv3 permits 4 missiles on the screen.
lv2 is exactly the same, but 3 is replaced with 1, so you can have 2 missiles on the screen.
lv1 is special, it only allows one missile on the screen, but here the compiler has not used a comparison (cmp) to check if the value of get_number_of_objects() was less than or equal to one, it has instead used a simpler check to determine if the return value was zero or not; in x86 assembly this becomes:
Code:
test eax, eax
jz shoot
edit: I found another way, look at my next post
I couldn't be more wrong... I was looking at the bullet code instead of the weapon code and assumed the blade didn't behave like a weaponThe blade function is even worse, it is designed with only one blade in mind and the number of blades on the screen can't be changed without rewriting it, even if one changes the current function, the blade would just disappear and respawn (or warp) beside quote.