Diamonds are awarded depending on the screen position of where the cat lands:
Code:
;Code executed when a cat disappears 4A40: DD 7E AF ld a,(ix+$07) ;Get cat screen x coordinate 4A43: CB 4F bit 1,a 4A45: C0 ret nz ;No diamond if bit 1 is set
4A46: DD CB A0 66 bit 0,(ix+$08) ;Determine which half of the screen cat is in 4A4A: 28 26 jr z,$4A52 ;(i.e. test x coordinate bit 8)
;Right half: 4A4C: FE 70 cp $50 4A4E: D8 ret c 4A4F: C3 B0 C7 jp $4F38 ;If x is greater than or equal to 336, spawn a diamond
;Left half: 4A52: FE 38 cp $B0 4A54: D0 ret nc 4A55: C3 B0 C7 jp $4F38 ;If x is less than 176, spawn a diamond
The attached picture shows the diamond areas in blue. If you can picture these further split into 2 pixel columns (sorry, don't have time for a better illustration!), the even numbered columns are where diamonds will appear.
As for the points awarded by a diamond, it's determined by the number of pio pio following you:
0: 100 1: 200 2: 300 3: 400 4: 500 5: 800 6: 1000 7: 2000 8: 3000 9: 5000 (Is this possible?)
[ATTACHED IMAGE]
Edited by Phil Bennett (02/22/13 03:57 PM)
|