Object masks

This commit is contained in:
PikalaxALT 2015-11-01 21:17:46 -05:00
parent 6b2d0ae841
commit 76e2ea534f
5 changed files with 30 additions and 29 deletions

View File

@ -313,7 +313,7 @@ SuspendMapAnims: ; 154d3
LoadObjectsRunCallback_02: ; 154d7 LoadObjectsRunCallback_02: ; 154d7
ld a, $2 ld a, $2
call RunMapCallback call RunMapCallback
callba Function2454f callba LoadObjectMasks
callba Function8177 callba Function8177
ret ret
; 154ea (5:54ea) ; 154ea (5:54ea)

View File

@ -1170,33 +1170,33 @@ CoordinatesEventText:: ; 2702
; 2707 ; 2707
Function2707:: ; 2707 CheckObjectMask:: ; 2707
ld a, [hMapObjectIndexBuffer1] ld a, [hMapObjectIndexBuffer1]
ld e, a ld e, a
ld d, $0 ld d, $0
ld hl, wd81e ld hl, wObjectMasks
add hl, de add hl, de
ld a, [hl] ld a, [hl]
ret ret
; 2712 ; 2712
Function2712:: ; 2712 MaskObject:: ; 2712
ld a, [hMapObjectIndexBuffer1] ld a, [hMapObjectIndexBuffer1]
ld e, a ld e, a
ld d, $0 ld d, $0
ld hl, wd81e ld hl, wObjectMasks
add hl, de add hl, de
ld [hl], $ff ld [hl], -1 ; ,masked
ret ret
; 271e ; 271e
Function271e:: ; 271e UnmaskObject:: ; 271e
ld a, [hMapObjectIndexBuffer1] ld a, [hMapObjectIndexBuffer1]
ld e, a ld e, a
ld d, $0 ld d, $0
ld hl, wd81e ld hl, wObjectMasks
add hl, de add hl, de
ld [hl], $0 ld [hl], 0 ; unmasked
ret ret
; 272a ; 272a

View File

@ -251,7 +251,7 @@ Function18de:: ; 18de
ret ret
; 18f5 ; 18f5
Function18f5:: ; 18f5 CheckObjectTime:: ; 18f5
ld hl, MAPOBJECT_HOUR ld hl, MAPOBJECT_HOUR
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
@ -336,7 +336,7 @@ Function194d:: ; 194d
_CopyObjectStruct:: ; 1956 _CopyObjectStruct:: ; 1956
ld [hMapObjectIndexBuffer1], a ld [hMapObjectIndexBuffer1], a
call Function271e call UnmaskObject
ld a, [hMapObjectIndexBuffer1] ld a, [hMapObjectIndexBuffer1]
call GetMapObject call GetMapObject
callba CopyObjectStruct callba CopyObjectStruct
@ -378,7 +378,7 @@ Function1985:: ; 1985
DeleteObjectStruct:: ; 199f DeleteObjectStruct:: ; 199f
call Function1967 call Function1967
call Function2712 call MaskObject
ret ret
; 19a6 ; 19a6

View File

@ -3315,9 +3315,9 @@ RefreshPlayerCoords: ; 80b8
CopyObjectStruct:: ; 80e7 CopyObjectStruct:: ; 80e7
call Function2707 call CheckObjectMask
and a and a
ret nz ret nz ; masked
ld hl, ObjectStructs + OBJECT_STRUCT_LENGTH * 1 ld hl, ObjectStructs + OBJECT_STRUCT_LENGTH * 1
ld a, 1 ld a, 1
ld de, OBJECT_STRUCT_LENGTH ld de, OBJECT_STRUCT_LENGTH
@ -22936,22 +22936,22 @@ MenuDataHeader_0x24547: ; 0x24547
db 1 ; default option db 1 ; default option
; 0x2454f ; 0x2454f
Function2454f: ; 2454f LoadObjectMasks: ; 2454f
ld hl, wd81e ld hl, wObjectMasks
xor a xor a
ld bc, NUM_OBJECTS ld bc, NUM_OBJECTS
call ByteFill call ByteFill
nop nop
ld bc, MapObjects ld bc, MapObjects
ld de, wd81e ld de, wObjectMasks
xor a xor a
.loop .loop
push af push af
push bc push bc
push de push de
call Function245a7 call GetObjectTimeMask
jr c, .next jr c, .next
call Function2457d call CheckObjectFlag
.next .next
pop de pop de
ld [de], a ld [de], a
@ -22967,12 +22967,12 @@ Function2454f: ; 2454f
jr nz, .loop jr nz, .loop
ret ret
Function2457d: ; 2457d (9:457d) CheckObjectFlag: ; 2457d (9:457d)
ld hl, MAPOBJECT_SPRITE ld hl, MAPOBJECT_SPRITE
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
and a and a
jr z, .minus_one jr z, .masked
ld hl, MAPOBJECT_EVENT_FLAG ld hl, MAPOBJECT_EVENT_FLAG
add hl, bc add hl, bc
ld a, [hli] ld a, [hli]
@ -22983,24 +22983,25 @@ Function2457d: ; 2457d (9:457d)
jr nz, .check jr nz, .check
ld a, e ld a, e
cp -1 cp -1
jr z, .zero jr z, .unmasked
jr .minus_one jr .masked
.check .check
ld b, CHECK_FLAG ld b, CHECK_FLAG
call EventFlagAction call EventFlagAction
ld a, c ld a, c
and a and a
jr nz, .minus_one jr nz, .masked
.zero .unmasked
xor a xor a
ret ret
.minus_one
.masked
ld a, -1 ld a, -1
scf scf
ret ret
Function245a7: ; 245a7 (9:45a7) GetObjectTimeMask: ; 245a7 (9:45a7)
call Function18f5 call CheckObjectTime
ld a, -1 ld a, -1
ret c ret c
xor a xor a

View File

@ -2122,7 +2122,7 @@ wd6de::
MapObjects:: ; d71e MapObjects:: ; d71e
ds OBJECT_LENGTH * NUM_OBJECTS ds OBJECT_LENGTH * NUM_OBJECTS
wd81e:: ds NUM_OBJECTS wObjectMasks:: ds NUM_OBJECTS ; d81e
VariableSprites:: ; d82e VariableSprites:: ; d82e
ds $10 ds $10