Sprite3D : Collision et arrière plan.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Sprite3D : Collision et arrière plan.

Message par Ar-S »

Yop,
2 autres questions concernant les sprite3D

- La doc ne parle pas des collision de Sprite3D. Comment procède t on ?
- Comment peut on imposer un sprite3D qui servirait d'arrière plan ?

J'ai fait une esquisse de shoot'em up ici :

Direction : Fleches haut bas droite gauche
Feu : Espace

Code : Tout sélectionner

; Précice shoot em up
; Air Sarko One
; Pas Ar-S / 2012 - PB 4 .60


UsePNGImageDecoder()

Global.i Width, Height, Depth, RefreshRate
Global SpritePath.s = "E:\MULTIMEDIA\PUREBASIC\4.40\_3D\ARS_RESSOURCES\"

Enumeration
  #SARKO
  #SARKO3D
  #BALL
  #BALLfire
  #BULLE
  #FINSPRITE
EndEnumeration


Structure Config
  
  Num.i
  posX.i
  PosY.i
  TailleX.i
  TailleY.i
  Vit.c
  Rot.b
  Zoom.c
  
  
EndStructure

Global Dim SP.Config(#FINSPRITE+19)


Procedure ChargeSP(NumeroSprite.i, NumeroSprite3D.i, MemoireID )
  
  If CatchSprite(NumeroSprite.i, MemoireID, #PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
    CreateSprite3D(NumeroSprite3D.i, NumeroSprite.i)
    
    ProcedureReturn 1
  Else
    ProcedureReturn 0
  EndIf
  
EndProcedure

; ---------------------------------------
;- >> PROGRAMME <<
; ---------------------------------------  


ExamineDesktops()
Width      = DesktopWidth(0)
Height      = DesktopHeight(0)
Depth      = DesktopDepth(0)
RefreshRate  = DesktopFrequency(0)
  
Debug Width
Debug Height


If InitSprite() = 0 Or InitKeyboard() = 0
  
  Debug "InitSprite / keyboard erreur"
  End
  
EndIf

If InitSprite3D() = 0
  
  Debug "InitSprite3D erreur"
  End
EndIf  
  

 
  
If OpenScreen(Width, Height, Depth, "Ar-S TEST Font", #PB_Screen_WaitSynchronization, RefreshRate) = 1
  
  
  
  SarkoZ.b = ChargeSP(#SARKO, #SARKO3D, ?sarko1_png)
  Balle.b = ChargeSP(#BALL, #BALLfire, ?balle_png)
  Bulle.b = ChargeSP(#BULLE, #BULLE, ?bulle_png)
  
  If SarkoZ = 0 Or Balle = 0 Or Bulle = 0
    Debug "Erreur Chargement sprite"
    End
  EndIf
  
  
  ; Création des clones bulles
  For i = 10 To 20
    CreateSprite3D(i, #BULLE)
  Next
  
  Sprite3DQuality(1) ; 1 = #PB_Sprite3D_BilinearFiltering
  
  
  
  
  
  ;**************************************************
  ;  ******** Paramettrage Structures ************
  ;**************************************************
  
  SP(#SARKO3D)\Num = #SARKO3D
  SP(#SARKO3D)\TailleX = SpriteWidth(#SARKO)
  SP(#SARKO3D)\TailleY = SpriteHeight(#SARKO)
  SP(#SARKO3D)\posX = Width - SP(#SARKO3D)\TailleX
  SP(#SARKO3D)\PosY = Height / 2 - SP(#SARKO3D)\TailleY / 2
  SP(#SARKO3D)\Vit = 8
  SP(#SARKO3D)\Rot = 0
  SP(#SARKO3D)\Zoom = 0
  
  SP(#BALLfire)\Num = #BALLfire
  SP(#BALLfire)\TailleX = SpriteWidth(#BALL)
  SP(#BALLfire)\TailleY = SpriteHeight(#BALL)
  SP(#BALLfire)\posX = SP(#SARKO3D)\posX + 108
  SP(#BALLfire)\PosY = SP(#SARKO3D)\PosY + (SP(#SARKO3D)\TailleY / 2) + 38
  SP(#BALLfire)\Vit = 30
  SP(#BALLfire)\Rot = 0
  SP(#BALLfire)\Zoom = 0
  
  
  ; clonage des bulles en modifiant la position et la vitesse
  For i = 10 To 20
    SP(i)\Num = i
    SP(i)\TailleX = SpriteWidth(#BULLE)
    SP(i)\TailleY = SpriteHeight(#BULLE)
    SP(i)\posX = SP(i)\TailleX - Random(150)
    SP(i)\PosY = Random(Height) - SP(i)\TailleY
    SP(i)\Vit = Random(10)
    If SP(i)\Vit = 0
      SP(i)\Vit + 5
    EndIf
    SP(i)\Rot = 0
    SP(i)\Zoom = 0
  Next
  
  ;**************************************************
  ;-  >>>> BOUCLE <<<<<
  ;**************************************************
  
  
  Repeat
    
    FlipBuffers()
    ClearScreen(0)
    
    
    ; Gestion des touches
    ExamineKeyboard()
    
    
    ;**************************************************
    ;     ********** BOUTON HAUT *****************
    ;**************************************************
    
    
    If KeyboardPushed(#PB_Key_Up)
      SP(#SARKO3D)\PosY - SP(#SARKO3D)\Vit
      
      SP(#SARKO3D)\Rot + 1
      If SP(#SARKO3D)\Rot > 5
        SP(#SARKO3D)\Rot = 5
      EndIf
      
      ; Limitation de sortie à haute
      If SP(#SARKO3D)\PosY < 0  
        SP(#SARKO3D)\PosY = 0
        SP(#SARKO3D)\Rot = 0
      EndIf
      
      ; position balle
      SP(#BALLfire)\PosY = SP(#SARKO3D)\PosY + (SP(#SARKO3D)\TailleY / 2) + 38
      
    EndIf
    
    ;**************************************************
    ;    ********** BOUTON BAS *****************
    ;**************************************************
    
    
    If KeyboardPushed(#PB_Key_Down)
      SP(#SARKO3D)\PosY + SP(#SARKO3D)\Vit
      
      SP(#SARKO3D)\Rot - 1
      If SP(#SARKO3D)\Rot < -5
        SP(#SARKO3D)\Rot = -5
      EndIf
      
      ; Limitation de sortie en bas
      If SP(#SARKO3D)\PosY > Height - SP(#SARKO3D)\TailleY 
        SP(#SARKO3D)\PosY = Height - SP(#SARKO3D)\TailleY
        SP(#SARKO3D)\Rot = 0
      EndIf
      
      ; position balle
      SP(#BALLfire)\PosY = SP(#SARKO3D)\PosY + (SP(#SARKO3D)\TailleY / 2) + 38
      
    EndIf
    
    ;**************************************************
    ;    ********** BOUTON GAUCHE *****************
    ;**************************************************
    
    
    If KeyboardPushed(#PB_Key_Left)
      SP(#SARKO3D)\posX - SP(#SARKO3D)\Vit
      
      ; Limitation de sortie à gauche
      If SP(#SARKO3D)\posX < Width / 2 
        SP(#SARKO3D)\posX = Width / 2
      EndIf
      
      ; Position balle
      SP(#BALLfire)\posX = SP(#SARKO3D)\posX + 108
      
    EndIf
    
    
    ;**************************************************
    ;     **********BOUTON DROIT*****************
    ;**************************************************
    
    If KeyboardPushed(#PB_Key_Right)
      SP(#SARKO3D)\posX + SP(#SARKO3D)\Vit
      
      ; Limitation de sortie à droite
      If SP(#SARKO3D)\posX > Width - SP(#SARKO3D)\TailleX
        SP(#SARKO3D)\posX = Width - SP(#SARKO3D)\TailleX
      EndIf
      
      ; Position balle
      SP(#BALLfire)\posX = SP(#SARKO3D)\posX + 108
      
    EndIf
    
    ;**************************************************
    ;    ********** BOUTON ESPACE (feu !)***********
    ;**************************************************
    
    If KeyboardPushed(#PB_Key_Space)
      Fire = 1
    EndIf
    
    
    If Fire = 1
      
      SP(#BALLfire)\posX - SP(#BALLfire)\Vit
      Debug " feu : "+Str(SP(#BALLfire)\posX)
      
      If SP(#BALLfire)\posX <  -SP(#BALLfire)\TailleX
        Fire = 0
      EndIf
      
    ElseIf Fire = 0
      SP(#BALLfire)\posX = SP(#SARKO3D)\posX + 108
      SP(#BALLfire)\PosY = SP(#SARKO3D)\PosY + (SP(#SARKO3D)\TailleY / 2) + 38
      
    EndIf
    
    
    ;**************************************************
    ;    ********** BULLE (Hors Bouton) ***********
    ;**************************************************
    
    For i = 10 To 20
      SP(i)\posX + SP(i)\Vit
      If SP(i)\posX > Width + SP(i)\TailleY
        SP(i)\posX = -SP(i)\TailleX 
        SP(i)\PosY = Random(Height) - SP(i)\TailleY
        SP(i)\Vit = Random(10)
      EndIf
      
      
      If SP(i)\posX + SP(i)\TailleX = SP(#SARKO3D)\posX And SP(i)\PosY < SP(#SARKO3D)\PosY + SP(#SARKO3D)\TailleY  And SP(i)\PosY > SP(#SARKO3D)\PosY - SP(#SARKO3D)\TailleY
        
        Beep(500,50)
        Debug "Booooooo bulle " + Str(i)
      EndIf
      
      
    Next

    
    Delay(2)


    ;- Affichage des Sprite3D
    
    If Start3D()
        DisplaySprite3D(#SARKO3D, SP(#SARKO3D)\posX, SP(#SARKO3D)\PosY,255)
        DisplaySprite3D(#BALLfire, SP(#BALLfire)\posX, SP(#BALLfire)\PosY, 255)
        
        For i = 10 To 20
          DisplaySprite3D(i, SP(i)\posX, SP(i)\PosY,255)
        Next
        
      Stop3D()
    EndIf
    
    
    
    
    
    
  Until KeyboardPushed(#PB_Key_Escape)
  
EndIf
  
  


;  IncludeBinary "bullet_plasmared.png" [?bullet_plasmared_png_Start , ?bullet_plasmared_png_End]
;{ Size = 831 bytes
DataSection
  balle_png:
  Data.l $474E5089,$0A1A0A0D,$0D000000,$52444849,$15000000,$0B000000,$00000608,$C6CB9000,$0000007D,$58457419,$666F5374,$72617774
  Data.l $64410065,$2065626F,$67616D49,$61655265,$C9717964,$00003C65,$4449E102,$DA785441,$8ECB535C,$BD143523,$AE5D957E,$492B972A
  Data.l $7A49D277,$23DDD33A,$9601808D,$FE0EF8AC,$807E240A,$586C40AF,$0D8241B0,$212D3348,$3269999A,$D263F48F,$A4952A49,$5A71B65E
  Data.l $C7CAE6AC,$ABDCF95E,$E041CF73,$F20FED0B,$C6084005,$FCC21294,$4842841B,$0012480A,$51294A19,$D831C4D3,$5AA0B4A4,$29842284
  Data.l $6949FF58,$F3E6EE6D,$6D7967AD,$7A93FB9C,$E62FE22A,$3CE08489,$74A0590A,$45CC74AA,$15DD6996,$9249BA0E,$69555768,$9435AF9D
  Data.l $889C74BB,$84CA36F8,$CA6F8845,$1B6D9792,$CA82B2B8,$671A5FDA,$2427292F,$A2769491,$BD060F80,$68D1E8DE,$870D1A3C,$A74EC383
  Data.l $9ED349DF,$98A538C0,$A77FAB44,$436ED8B2,$82245ADF,$35F5CEB2,$60DD98BD,$6370ADBB,$BE8CE60D,$F27E6301,$41D21FA3,$AA1F1FA6
  Data.l $83E3D3F4,$BD47D3FE,$C9B3D383,$ECFA7864,$ECFC6CB3,$230DF289,$B8B05082,$DD374578,$828A291E,$1AF57DBC,$46FF2ECF,$8CC41A12
  Data.l $A8608085,$70EB42C1,$8977235E,$187425C0,$4A062FB0,$E4F9FD7F,$27E727F1,$F3938327,$EAF93533,$3D39DE4B,$A4E02CA7,$9128366D
  Data.l $FBF77A21,$A74C580B,$D057C9A8,$5B490612,$3CE547C1,$4D298F4A,$94C7ED28,$C363158D,$44B28A34,$46301E29,$C1102102,$01A87201
  Data.l $293018CC,$863E3B21,$16B3AFD2,$81B3541C,$B7806C4C,$7BD98A06,$0F1AC9E3,$65EAFCFC,$6E2E2B41,$DADF4EB0,$E75B5624,$A95CBE6C
  Data.l $76FE2F6C,$8880494D,$D4C876A9,$15501EF5,$0AAA6A05,$22C0759C,$8025B109,$62C6169A,$79FF2EE2,$B5729FB9,$C600991F,$37CABD68
  Data.l $F90FDBF3,$5A2CB17A,$D4DFA5E7,$D5D9BABB,$660FDB9B,$EF36BB3D,$6530BB7F,$E2D5DB5D,$BABBBDDE,$1CFDDD82,$6F016DAA,$E6582BE6
  Data.l $DEDCDC39,$7EB9D6E1,$FBF76D63,$19FBBF6F,$64B54A09,$F08893AC,$47C7FB61,$C1FEA347,$B0E8E0C1,$F79C57DF,$6AD22E22,$596C8AB9
  Data.l $6845084A,$CF7713AD,$212D60FF,$5C195A74,$985C4AEC,$700F0306,$7DCDCC6D,$3E837F9E,$A26FA9F6,$0AB54AB4,$D6311665,$45DA74CD
  Data.l $69A1A375,$0E8C6453,$8D9E9079,$2FAFF1FA,$602D12FE,$81CB395E,$965B60D2,$7829F781,$FE80FE9F,$1C9EDCDF,$7E072F61,$89F51448
  Data.l $89804142,$6250C30C,$45521F6B,$DA6F6201,$854442A4,$FBCBC75A,$9100B485,$CEB61043,$E660894B,$7FE3F513,$CF000C02,$C76C3B2D
  Data.l $009FA180,$49000000,$AE444E45
  Data.b $42,$60,$82
  
  bulle_png:
  Data.l $474E5089,$0A1A0A0D,$0D000000,$52444849,$40000000,$40000000,$00000608,$7169AA00,$000000DE,$58457419,$666F5374,$72617774
  Data.l $64410065,$2065626F,$67616D49,$61655265,$C9717964,$00003C65,$4449B51B,$DA785441,$77695BBC,$ED91C75B,$24003DED,$6524D125
  Data.l $13EC96ED,$E6667167,$33324CC3,$FCCBE61F,$F30BF9E3,$C8932721,$C71CCB27,$2D639389,$D48976A6,$DE008242,$7B9EAEEB,$A081FBAB
  Data.l $9C725944,$00106C8C,$557400F9,$AB75BADD,$F7CD61BA,$63DD27FC,$EF666597,$64DBB9DC,$77F8C793,$C15BF716,$CC440F87,$DB61C996
  Data.l $AD99BB66,$AED6CF5F,$9CDAE365,$0DAC6B6D,$F96F58D9,$6CA4D626,$3A6B5A25,$6D677393,$532CD99E,$930BD363,$BB3B2F65,$B7DA529F
  Data.l $CD9F3DD6,$75B32F16,$6FD71BF3,$F28DCEF4,$F7CA6C28,$BEFDBF59,$F8783F86,$5E4D6478,$FBDED1A7,$4BBB390B,$FDEE1D12,$27384896
  Data.l $F11BAFD9,$2E0DB830,$E35CE778,$B9C6378D,$EB6F70E0,$1448B20A,$31BEF0EB,$26CE3E25,$B7B129C1,$4DBD4D36,$6FBF712F,$2B847E6C
  Data.l $3EE08A1E,$ED92E7BB,$974BA5E1,$7F08EA16,$1CDFFE4E,$3C77E690,$A3B6DE23,$79CDEF0D,$4DAAE42C,$F6924AEE,$13BF1272,$FA633863
  Data.l $F5BECA30,$6D76084D,$212B4CED,$B2567188,$05A85833,$561E4C08,$C00AB960,$39BCF704,$8F70C7CB,$1D1DD94B,$D32598BC,$73B1F24B
  Data.l $2BC03FB6,$0F8DACF7,$70F789AC,$F64A6EF9,$1FD162E9,$46E3747C,$D27616BF,$8C01D5DF,$7F37E7FA,$D83F37E9,$B1B33B5C,$5C931DB6
  Data.l $9C7FD937,$F6357362,$E183A761,$FAC6DA56,$D68FADD6,$B24DB19C,$1E0927C1,$C9F87BC6,$CEB001C0,$7A3578C1,$E0FC5F79,$7D381F32
  Data.l $A5C3B36A,$11C33FF8,$9B1CB829,$458BF983,$D83EFB6F,$7AB78A7E,$06FC4DE6,$5C65BC30,$CE9D3BB8,$3DED9EF7,$5FFCFE9F,$FC8D3DFE
  Data.l $3B9BF919,$EE47BA40,$63FE7FCF,$FACCF673,$25723666,$EA61FF8B,$6BAE8DFD,$737D752E,$8CD348D6,$7591E346,$DDA91EE3,$E726DF3B
  Data.l $82B68C1D,$BDE36658,$1806DD46,$16C9F9ED,$0ABC7074,$8D7F5E35,$47BE5C67,$8EFC6496,$9CFB832E,$AEA4C18D,$36353935,$74F3EDF7
  Data.l $388E0AF0,$C43D3908,$DAE16E0B,$BB0BACAF,$5F4C5E2F,$8FE9FA7C,$3F7BB1FB,$85F7D827,$8F47C3FC,$6DD548C7,$0114FD3C,$08BF51F9
  Data.l $B0F317D7,$E3B458BD,$91693B51,$4DB67D0E,$8C2222C4,$433EC04E,$32D43428,$3A3701A6,$D7D6F702,$7EE1A64F,$97BC0505,$F1A137FA
  Data.l $EF11AC32,$C4967C92,$BA038224,$4A306906,$D30F6FB6,$C736F3D1,$8EE7787D,$2347F491,$F8782BEE,$2E1787D9,$07FCD7CE,$F0894CEF
  Data.l $8C220BAE,$6F6CFA7F,$725D244D,$4FB8FC39,$22F9B3FE,$B51D9D5C,$FD6A6367,$B4009DA4,$18262CCD,$79827DEE,$290624C2,$3760C4E6
  Data.l $9960D8C1,$FE3288D3,$97C0F1E4,$315C6AE7,$C8A10F3C,$87083D25,$09D00C4C,$B076F059,$92606F18,$8880118D,$7C383786,$66E72614
  Data.l $2636D169,$CFEB07AE,$E0371B79,$DF3C3F88,$94787BDF,$FCD74C5E,$11ABFA66,$FC5FABF0,$1F7CC357,$6B55C38F,$BAE87FDB,$51D993F0
  Data.l $B69D3CB8,$04D1E36B,$08EDAF65,$461BEF77,$B2E73C1D,$C872C06F,$1601A6DC,$1C115C02,$0FBD657E,$2605BD88,$D3F00350,$5678FE01
  Data.l $412B5F63,$AC584625,$22704FB1,$3541987C,$86944539,$432F459C,$0329B099,$C93BC80D,$72E508FD,$9671FB82,$E5937EC5,$0BE9CF9E
  Data.l $3DFFB9D7,$9F76CC5A,$FE98BDED,$B3FFCFC7,$6008CEFF,$75BEBFE4,$69326D67,$FF0967AF,$1A7B9B38,$3A70E97F,$35DB8C9A,$0B3F45DB
  Data.l $1308F421,$80460E60,$0F0A30E1,$D2C6F410,$B609A6F6,$616C0145,$DB78DB7C,$EF1BCF22,$89F80780,$AF70C3F6,$67F497C6,$446B19E4
  Data.l $7BEE124C,$7A37B984,$CDF0179F,$90EC7F02,$0810BD19,$CC246A02,$ACAFC06C,$FC6FAC12,$7CCE22D6,$9A119D03,$F1F18CD8,$DC1FDB3B
  Data.l $07979239,$7A5CEE6B,$EC28076F,$46D6F6F7,$5F8D3C88,$8F4FFC2C,$0F17468E,$FE2D470F,$0B767DCB,$22CF587C,$C8C390ED,$F0029871
  Data.l $D6DA1B7A,$9DB1DB8E,$5C4DC684,$47677B83,$F503C601,$CCB15781,$850092B9,$C80897ED,$0800A2B9,$48C07720,$82360020,$17874C57
  Data.l $6614A1CE,$CE51D251,$5A4E08F9,$1A281780,$4726387A,$56112EA0,$93AE7C7E,$F5196785,$28C6EC46,$CEE1D20B,$274D5E4C,$A77A6CEE
  Data.l $FED81203,$80BBC3C1,$5004BA53,$F9DE74FF,$361E1C9F,$C30E0F17,$DCE00DA8,$2C50161C,$02E4C1CC,$1CB40F64,$E35D0E5C,$DEB70C01
  Data.l $D346DD8E,$80540DB8,$6AD05631,$FDE16DC4,$23EF0A6C,$F3012ABC,$5998E9A9,$D307E00F,$91853A58,$312A1635,$A83401AF,$C8066630
  Data.l $07EFE21F,$1843D8C9,$78FDABDF,$2214B310,$22C6CD75,$1D402B9B,$39F6CCDE,$8F478B76,$E45BDD1F,$AEC8D9A3,$901D5BC9,$DD6FE750
  Data.l $4F1DAAFA,$EC493B46,$7FCEBB8F,$BD2FC306,$81E6843A,$F01B12DA,$F56226BE,$BACC3009,$EB74E662,$7F75A3C6,$59DC8DCE,$11037E44
  Data.l $01EC811F,$167FE575,$FC3ED53C,$CD596588,$82EEBCC6,$700C1A41,$40012E38,$EB11290E,$E40343A5,$E9A6B474,$AF7F10A2,$B939A524
  Data.l $11664502,$24CC9D89,$4E20CE6B,$D17E9157,$6405E445,$B7BB37F6,$6CF22D1F,$7913B231,$C61101C3,$D9C8A4DF,$8F073CDE,$C2EFA0FE
  Data.l $70B38767,$4071B719,$88662322,$69DE317C,$E13A072D,$E682D362,$1F9AFCD6,$1A6333DB,$AB0B4CEF,$30077A9D,$2C67102A,$81456E89
  Data.l $725E5D72,$BCFA10DF,$65E8D3F2,$690F35F9,$E0BCA170,$B2491689,$53112AC1,$9B7A3A24,$E9E48762,$258423A9,$61F32082,$FAE677B3
  Data.l $3C19E7C8,$264C9D3E,$FF9F9BB3,$304E0F7A,$0E961383,$CDDB9910,$F5B5CDAD,$4595C9B5,$5F387EE7,$D5F02BF8,$C32DCD9A,$3D95C73D
  Data.l $2F615CB8,$2CF01D50,$653E10AA,$319FE86C,$D3868F09,$E8E248FF,$B534BD8A,$46163654,$2E8C566B,$1F12CE95,$1AA980B9,$1863AEAC
  Data.l $4AF24B35,$01712C72,$B8ED602F,$46639408,$4DA424D1,$3E12EFE2,$C09143BC,$A8EFAD52,$81DBBC3E,$35A4FD0A,$B891B2F2,$35BDBDBF
  Data.l $38390547,$FF460081,$355FDBEB,$AEEDEDA0,$16E83FCF,$DCC1C6F6,$C1F9059D,$00033B5C,$66A1E44B,$51575E05,$73ABCA17,$435034D0
  Data.l $62AD968D,$59113E47,$C554004B,$C0A860AB,$C3B2AF28,$3CDAADCB,$8600CC24,$BEB6159A,$C8F6F0E5,$48040848,$9821D461,$8C81C28F
  Data.l $E01AB617,$33663E8C,$200342C7,$AEE4FA81,$10530FE0,$F5B693E8,$EDEFF7FB,$5054862E,$FCFCDC07,$CBA5FC7F,$94A0CE97,$723A3F5F
  Data.l $DCCD1C9F,$803CD1F6,$2B975D44,$3BBF55EC,$D4561E92,$CB0750A2,$0815840A,$3A424994,$64FF05DA,$ED8BE594,$54BB4B52,$58021BF6
  Data.l $D1315F2A,$55A8F496,$E4964570,$42E156FC,$59D4CFD6,$1F681692,$09F72617,$D062C04E,$08CA598A,$E9030C4A,$F9291660,$06879A05
  Data.l $7230BCAF,$6DA127EE,$5F31231E,$CDF9FE7D,$7D0AB7C8,$BFDDC4FF,$7441A777,$F333E677,$4BB9D771,$12370B87,$D50A0A50,$708BFE02
  Data.l $EB1864A9,$345A7228,$6267E4B8,$F303AC03,$8A64AC7B,$4A9E7404,$4AC3F1D0,$50EDE747,$C88897E4,$85302BAF,$57CFAE43,$E49F2149
  Data.l $431AC2C8,$FE5294AD,$694A3C52,$0008B531,$00BAA335,$816200A8,$7353DB44,$104E16F6,$6DCE0A3F,$775D3A43,$D510FD39,$AB95C1E9
  Data.l $4140A797,$3A50200A,$F9F63D7E,$FBC84C6A,$A4E99DDE,$47B4211D,$44B7D186,$1FC19E3D,$47BC6812,$01B9CE81,$E72159DB,$1ED128DA
  Data.l $483F48F5,$0568DEE5,$34880F40,$7DC81E24,$BE3B2CCE,$FC928AEA,$92BB94B6,$67BC2B3C,$03CF6D57,$1843945A,$83E9617C,$77D8F3F1
  Data.l $33F53947,$BB0F5490,$25333355,$994B6272,$1BA282D1,$D09C96B5,$AC23C601,$A61423F8,$2DD870C7,$70A79148,$B9DC3CD7,$B8BA0DFB
  Data.l $5DC515B0,$BF3BA3EB,$F7DB7DE8,$F5C173B9,$B8824A99,$1406B06E,$4AB0DC82,$E35043E3,$2A731E04,$7E6CB8DC,$ED6283AA,$0B7C4EBB
  Data.l $31248055,$6E01920D,$6B575D63,$6E946BED,$079EA997,$C0971D0F,$622BEC7C,$B225E604,$60433E36,$F360EC50,$43284522,$71D2C120
  Data.l $93B09F9C,$8A24A852,$92D504B3,$03A03262,$3D711C8B,$3822D9E0,$3E96A057,$EFB7B5C1,$057DDBDD,$5E31900E,$7B262173,$8D99D671
  Data.l $682D7259,$43358A65,$A0688158,$986721B6,$E5601CEF,$A051B1D2,$4856BB69,$963AB0BF,$5C9B9A82,$3A0C9117,$06FD42F2,$C5F474F4
  Data.l $9496D0D6,$CD9DFFD7,$A6380D43,$0F08D2CB,$69A86070,$E3FD5091,$5B0E7427,$905F4002,$280F68DF,$AE23619B,$A8122AB3,$018C4989
  Data.l $831714B2,$01612419,$CD3A28E0,$CAC35FA0,$2E8ABB8D,$E8F823FD,$814B2712,$D3E43C33,$6768B825,$B3DD3501,$33F58296,$9D904F9A
  Data.l $6BA88F1A,$060EC697,$E5984439,$1890B762,$E513FB95,$127C4E9D,$1D52033E,$D9CAC2BE,$75F4ABD5,$00288AAA,$1D45E84B,$057FD4E2
  Data.l $95A876F2,$735D86B9,$D64FBD9A,$43F85777,$84EC2AFB,$E8326B06,$2A096452,$45942616,$87EB0F84,$D8BF5037,$A915C023,$104EA687
  Data.l $E22C1311,$6BB2BA32,$85BBB1E3,$416F355E,$3E005DF5,$E751E636,$4427C831,$5BE7A41F,$F557964F,$AE6C6DA1,$4659D791,$ED16E9D2
  Data.l $A4DD8AF7,$5497962A,$A46DA782,$9C559B67,$57E5A1C4,$C13B5C65,$8B2E3AA1,$40501D9E,$8C03A9F8,$59D43EDA,$4A4AE549,$B9372D2C
  Data.l $BAED14B8,$27C76FAD,$98BA0F78,$448EA074,$989D0250,$61521578,$435C8BCB,$A766DB21,$AD98070E,$4BC8192E,$CD79D1E7,$DB40AD71
  Data.l $3AF1DF33,$45F87DD6,$A18B1317,$1539892C,$39A8CEE1,$F05472ED,$261942E8,$64AE2B15,$397468B4,$C203CC08,$DE5728E9,$25CA7D40
  Data.l $13592703,$4207D6A5,$04379B3B,$A09A9D61,$3892C5CE,$FAAE6B52,$5637F451,$9CCEC5A1,$D10E8325,$150F1A2E,$AE3CF9BF,$EDBF00B8
  Data.l $07C80AA0,$0ED9FBC0,$451886D4,$8404C8BE,$29C2502D,$55E168FF,$207B0A78,$AF0527DE,$C2729C51,$4C21D5E5,$0A61B66C,$CD92B35D
  Data.l $122811A5,$C3413AB8,$A2180BC3,$C02037A1,$860D50DC,$7AC9D081,$5610F438,$2B16080B,$3CA04A65,$7A898F02,$95C9C94E,$2196B371
  Data.l $564A9EB5,$D271C633,$23C1B662,$6C6D49E7,$8D44CE7C,$901A7011,$5AF1A8BA,$120D184F,$F615CD9E,$E21E8B92,$708E2DBD,$A905EDD5
  Data.l $0A22D005,$6764CD4C,$6A8A20CD,$3954B083,$2B245AA9,$CE8D4205,$192728A6,$3E3C7DE2,$F8A53A5C,$0EB0D2B4,$A814390D,$A3DD522A
  Data.l $9030C952,$040A50A4,$7304D4AF,$BE6C08ED,$243EFB09,$9B466F53,$834CE49B,$79E16B0E,$ED6F2F91,$516CD46A,$6AF6159E,$0DD66293
  Data.l $94329E22,$E619D54E,$B3493C60,$E35AB394,$26AB3907,$D3E7B941,$A7CF9F55,$81593FE9,$AE66D2BF,$C757032D,$2A8521F2,$750C12D2
  Data.l $F265247E,$50D52BA0,$D701A059,$E21E7B5B,$CA250766,$90DAE06D,$7501CC48,$B3A1AF56,$E8D3A56A,$FA1B092B,$BCB89598,$94E5A121
  Data.l $2B214D04,$4421E1CD,$23A228BA,$66929399,$2FB1C270,$7940F35E,$730002B8,$19D5519C,$B9CF4B22,$9D54A28A,$4D68BA21,$74234CDC
  Data.l $53CA28A4,$5A5939AA,$3AC28F39,$4CB3FC18,$D7E73181,$397896CA,$2D56D8F3,$566750A2,$3E93CE69,$36D26568,$6C2CD064,$70595DBD
  Data.l $1A8A601D,$72C1ABEF,$A854D4DC,$71BDA793,$042BB5B5,$3803D2B6,$5F0020ED,$D37EB1A7,$A539E501,$15DEB976,$94556844,$D15EB061
  Data.l $AD9CEAE1,$96973860,$E65E172C,$3BED02AC,$41F18F9E,$02538070,$0394C81C,$036E40A6,$4AAA21BC,$F9A5C347,$AA0A53C2,$151FF25C
  Data.l $CA2A573E,$5B5D42B6,$79843C9B,$16F1D770,$363CEAD0,$25B9F4AF,$E45D9671,$03B7675B,$58307299,$FDB50E47,$75A04756,$5C5A7D55
  Data.l $84F1EDE8,$EA88075D,$9D92501E,$65BF3804,$48A252D2,$57C1DC2E,$4743FF52,$B42BED66,$6C8D26BA,$AFB5568E,$2F887577,$EA981103
  Data.l $B96C2A96,$717351D3,$9695BCD5,$45508D5F,$7B5073A3,$8C2A0522,$0DE5C46B,$8EE6BC04,$594D008A,$12C074AB,$0A422BEA,$091C9229
  Data.l $545E951C,$A8C17865,$8B20EBCC,$F945EA80,$52952E73,$7527176A,$2ED85B50,$9A57AC97,$B4AFFCCE,$F186F2B3,$225F1AB6,$BE925794
  Data.l $830B1162,$07ED350C,$3E7BA66B,$BE68F135,$F0BAF34A,$DEA77637,$73CAC470,$621CE2B7,$CA244754,$374AB62E,$EE944A5B,$AF291A3C
  Data.l $7505AEE0,$3195DD7A,$83A0B865,$6CF66559,$AF8018EA,$8B69D051,$32A4F440,$B1B5B3EC,$34F6361F,$DE444E31,$AF8313E6,$6642F7FA
  Data.l $6C721694,$FE0C3BF4,$FABBBDF6,$E8234919,$39BFEE4E,$AECDC65B,$8BDD4750,$C87C42C2,$CBCC74CB,$268D54B6,$4F3D6AAF,$4EE91185
  Data.l $86544115,$190C28AE,$1F56BD06,$CAA3CD56,$A0C8AF2F,$431C7455,$9F33CC16,$E8E8EE9B,$5B7D36ED,$34416BC4,$DC22BFAB,$9D347895
  Data.l $84D4DF49,$44AE7F75,$CDC316C8,$BBDC4590,$556DB291,$99665180,$9B01E17D,$0292E16A,$13585A81,$65D2822B,$8B5B2325,$5E76CD3D
  Data.l $6B7502F7,$7778D563,$8BABFB9C,$2F28B6FE,$E26B56FF,$27300E9B,$526CA3D0,$CFEEBEEA,$15930E25,$6E6964C7,$45C7D4C4,$893D71E1
  Data.l $7F44CDA3,$2BB63000,$3BF4B285,$414BA9EC,$CD58D3AA,$ADEC3AAC,$110B93A4,$EB935F6A,$7F987FE8,$A1CFA30D,$75289C12,$DBC8162B
  Data.l $F02DFD10,$3269D53F,$AAEEBD30,$AB75DAE4,$151AB342,$1BA734D4,$A2D73633,$19647391,$E2373DEC,$ADB51959,$0AE01C2E,$35F46A01
  Data.l $D40EA27A,$AC96D4F7,$9716EB6C,$D4A49BA8,$ADF46596,$38282B49,$1A96CA59,$DCF33DF7,$D7C7D1A9,$10BEA9CA,$B51D6ACD,$C7AB0F6A
  Data.l $C5FBA02C,$3EBDBE29,$EB491DD7,$DC172BEA,$04D05EB4,$B81913C7,$E704ED1C,$A0A0A99E,$16655CC0,$8E564B8B,$D6772EE1,$1EE39688
  Data.l $C0B374C3,$5C818122,$AE52FE61,$3DE8DD6C,$76F2803D,$CBED7008,$0709C817,$EE7AF29C,$40EA72A6,$95E6C6E9,$3375635E,$E42EDCD4
  Data.l $4616B862,$B6B39FED,$ADDC4791,$F053339F,$F7604000,$25403B58,$2B8B32C1,$68A76BE3,$0E95E750,$3F4A6561,$9DFD40F0,$29FE8548
  Data.l $1CDF7F51,$88FDEE30,$D450787F,$CDD6D195,$C8457471,$C612C773,$69DF463B,$3C65C3C5,$DF3140A5,$1129CEC3,$90310870,$082D86C0
  Data.l $935675C1,$B6504759,$8DA1B456,$0A9D7DA9,$CBDF52DD,$4F76BE76,$4C7E8652,$5FD01381,$90ADD106,$BF7B31F5,$ACDE033D,$FEB3AF00
  Data.l $905515EA,$30108B70,$C0B89C70,$F8070F68,$7E0DC780,$EAF59BAB,$62442604,$055F9E23,$5C25E4E0,$6767C3D2,$D5FA87BC,$75549539
  Data.l $C5453D49,$C2908244,$3916CA6F,$B439470F,$DB43ABAB,$B2315882,$BA72F79A,$D6B5DF41,$C29C0717,$14F78521,$14339A9C,$71363029
  Data.l $77B8E926,$08041AE5,$47A0BB86,$5A0114D3,$FCEB10D9,$0CF88C8C,$DEB69F91,$1AEF1A2E,$6B67340A,$EB429545,$A6CE2756,$8DD2FDD6
  Data.l $16FBE9C9,$4EFFACC7,$33B7CAF8,$61E2B7FD,$B5B439B5,$866D50B9,$F197C69E,$0BBDC06D,$0376A40D,$6B083444,$95CD3563,$EE0F05E8
  Data.l $038F01C2,$C9E19D8F,$9DFBC6AB,$BD1B49C6,$4E3A290B,$931E5175,$51ACC8EA,$5B9396E7,$DE60649E,$96DD994B,$F178A832,$4B2EC2A5
  Data.l $D19A9C9E,$77B3DAF2,$EEDF1F1A,$4ABEED2A,$15F193DE,$037E88FA,$6746A6B5,$78D2DFC2,$08A3A83D,$90EFD487,$AE50CF2B,$6117E19E
  Data.l $D7BF941F,$F1B57B38,$AE0FAD76,$AE77F645,$1EC5D3CC,$58CA1E4F,$A8B14D82,$B50E5FFE,$8FE32E53,$2CC5F122,$375EE1E1,$8E7F2DD3
  Data.l $F1F43737,$77ABC5FC,$9482F894,$799422A1,$74F650E7,$D816C6DB,$C83CF083,$E466280E,$EBC26F75,$DDC3451E,$01C8DE2A,$29877B9E
  Data.l $23EE0875,$1E53FCEF,$0A07D8A9,$0E0C821E,$90EF8D47,$80086D03,$EEA1778C,$2C1E16F6,$B86EB6BD,$552DEC0D,$9B1C8BC6,$0CEEF228
  Data.l $0DE32DA0,$E36B4234,$DF5605AA,$42533DE7,$E7346FA1,$E67BCAD1,$8C50D8B9,$BCF11047,$1F16E3C5,$59879B86,$0A6E1E30,$FA883710
  Data.l $1769272D,$661FB36F,$78E5EEF3,$B8801EE4,$B603829F,$49AC26DA,$21F45D4C,$1A3A5CEA,$6145FD15,$76E23AA9,$4F9CCEB9,$5904EC33
  Data.l $EFED7B89,$BD1AB79C,$56793D1D,$647178B5,$708A96FC,$69483742,$D86D8663,$A7B3D84C,$62A421F1,$C30EA22C,$1DD07D11,$0A98A777
  Data.l $C085D9B0,$E753957A,$F947DD25,$9B3666FB,$784380BD,$743FC4E4,$D7B4BF99,$D4CD84E0,$DC498986,$C7490950,$FD46D92C,$265DE309
  Data.l $C41180C7,$11593194,$BC5EB5F9,$052C846E,$0F86AB90,$F06225B7,$21EB1276,$358CD38D,$01D2E8AB,$A35155B5,$A94BE69F,$6EA35E0B
  Data.l $C0E6D37C,$047EBA23,$FCC08CC7,$63CA5C23,$E32B303A,$8C54B022,$DBC6CE07,$4807BB78,$7EBBB9AB,$FC8F46E3,$BFAC6FDD,$193D570B
  Data.l $3900E135,$8D7BC630,$317858E1,$8AFBEE04,$60D9FD8E,$DDD6B094,$C679E5AB,$CC0EFCD2,$36956F2E,$5BC6706E,$FDC9BF9E,$9AFB64B2
  Data.l $CA4B4CEB,$604090DB,$5EC2BA88,$2382337C,$09D31B78,$D85F048A,$781FB99F,$AEC73548,$21F7E6F5,$FCB1AFE7,$AF57ABFD,$C6CD3C76
  Data.l $A021E929,$BD82EBBD,$B0F9648D,$69B37EF7,$218A359B,$C6E8AB6E,$D48130C6,$906EDCD3,$EBB2EC81,$E65FA6AE,$CB6436BF,$703539A8
  Data.l $2342D8D5,$6C7255D5,$110B7BB8,$55AA8E3A,$15CEE8BB,$0E04509C,$F468CE09,$89187869,$38040E1A,$8638023F,$375407E8,$8852945C
  Data.l $DDA84BFD,$EF14A4BF,$290F0082,$75918110,$21E0F079,$453E3B0F,$B50D7E3A,$86DC7F70,$C6134D97,$DBAEDB4D,$26E49DA6,$AD36F08C
  Data.l $0D10D921,$FC32E4A4,$161BC773,$64BC8B4C,$AB6263B3,$E2065E1A,$56EE372C,$0A965176,$2AFFD4EF,$0F67F1CD,$27BEB24F,$5C991304
  Data.l $94D61CCA,$B8095481,$B83630F9,$F086FE11,$8F894E77,$6078B587,$433891A1,$893A6FF4,$4FF1827F,$DFBBDFEE,$9CB8EC8D,$9FD7F910
  Data.l $BBBA5BFD,$9500EB7B,$E57236F4,$676E7042,$998A8F44,$F31886E8,$9CABEFBC,$750CBE95,$C93930D8,$A91689C3,$4725539D,$23A3BAB7
  Data.l $FC390F85,$C13B9D69,$394EE2FA,$397397AB,$C1B59F38,$7C55EDD1,$C483CF84,$007C840D,$8D7649C4,$6D20DF46,$03A75185,$9CAD6E78
  Data.l $A41A6C4D,$8C5F8C2E,$C7D2FE6C,$FEE005F4,$F0799C35,$3CFD9FB3,$B508CF2D,$F2E64D76,$E773BBAA,$0B91B3F6,$2F0C815F,$A6CECDE0
  Data.l $56D15EC6,$984F7328,$907511F7,$A7868BDB,$54A8B842,$B76A66B6,$E3E253AF,$EE5BB871,$4D63550A,$EE12C271,$6EA11B75,$5F32D98D
  Data.l $95E50728,$ECADB8E4,$4B9250F5,$F421E3DC,$0DE03C61,$249103D8,$223CE43C,$8A43823F,$B23D80F1,$42D7E784,$D442578B,$2F7526C4
  Data.l $A03F9583,$E8B97DF4,$6FD767FA,$9FE8D75C,$F1462538,$7CF7B7B4,$ED85E1FA,$2F86A85D,$F85B1CC1,$B18209E0,$DE209DAD,$241A4235
  Data.l $1C91E4FC,$46A461B0,$D4994F43,$3D46CA5E,$687DA1A5,$CB30BB2E,$9A72812D,$509ADEA0,$35B54337,$AAAC53A3,$A227A8AE,$3583E94D
  Data.l $10F4E0CD,$8A19CCB4,$1473D41C,$D0203871,$64602278,$2D5BEB2A,$6300167F,$F5834DF4,$60518FE3,$FFD114FC,$BBF897A5,$BDDDE318
  Data.l $C7E9BDBD,$DF927F1F,$13C82738,$647C8B53,$8DBDD9BE,$49FFC8E6,$76A3AD24,$3739FF20,$5E501FB4,$C37D9B0B,$52824083,$3FBC3A9A
  Data.l $9622897E,$32A6B6CA,$7D0DD65F,$667538DD,$A1E25ED8,$4ED8365F,$67995647,$A561D8B9,$D63CEEC2,$8EECEB16,$4BA9D751,$1E4F0271
  Data.l $B41D6A73,$78C5F5AD,$3CEB4538,$B4A70F23,$78D0DE34,$5E4B3EB0,$C6067E8B,$47F526E7,$8D7F9B13,$401377D2,$7DCE0AFA,$D10FE849
  Data.l $28A4E37F,$09C2918F,$EE8F478B,$7DD6093F,$35AF2491,$B140D464,$8F69CF91,$74741CCD,$D2416080,$C8F53443,$5220BA4E,$829CD01E
  Data.l $93373D04,$49F70F57,$DC493EDD,$6E753581,$925F9663,$5C43F7E1,$3C36261E,$02CF8265,$AE1A798D,$7E48EF8C,$7C6A78D5,$B5E357BD
  Data.l $03C6A9E1,$3147920E,$7E56C6CE,$8441E343,$3D07C7BF,$F5DAE8F9,$A7F1AAC5,$13A6159E,$7F307266,$40F7BFBE,$60EFF9BA,$C51D0B5B
  Data.l $3646F946,$86171CEE,$40A3C24E,$85E4B2A2,$56101381,$541EA2DE,$96599E12,$1C196F32,$35FA72B0,$A7453CE9,$4570B6B0,$6F32BC25
  Data.l $9E858EE3,$A784292A,$C3142EA5,$3EBEE6BD,$C5F3E2A6,$55F1AA21,$C1DCB1E9,$C69E4478,$16FCAC4F,$C857EF65,$B684DFFB,$B5B5B07D
  Data.l $F8DD7B35,$9F169EB7,$2E6933B8,$77BBD307,$9E337CEE,$B98078A0,$B91B1D1A,$2DA7118F,$6F583B78,$96C5685A,$F2909507,$F426219D
  Data.l $518932BC,$1F8D5DC1,$E9BC7050,$D4F46309,$0B2C1A95,$AB2ABB5B,$E86EB790,$9B4142EA,$D4C4BED7,$D68D06C1,$2577767B,$9E12A1EA
  Data.l $D89BE465,$1A79194F,$3E7CB3EF,$5EEE2F9F,$3A7178BC,$7FEFEB71,$C6FF9E5C,$6E2FC270,$6774F7FE,$68F6EB7B,$F3C8B2DC,$836F50EC
  Data.l $F00801FB,$9553593C,$9CAE9062,$9CD1E2D6,$583F73DC,$78EA310F,$E7C60CD9,$F4C76D55,$3C8A65CE,$C3B7971C,$E77452B0,$4EA11D54
  Data.l $6DA6E378,$6C41E3AD,$E8F69C1E,$778343E7,$9A949919,$E438717E,$E34F233C,$FE3F7A49,$57F4B3E4,$4808677F,$FBFBFBF0,$977631EB
  Data.l $253FD561,$3A39FE17,$E522E9FF,$08843A8F,$D8B904B7,$5943C4C7,$23D62786,$8374C477,$5CEA1EAE,$D7E5E6EA,$F841EAE4,$C5330BE1
  Data.l $5943BA01,$8122A153,$47077207,$0B8E14F0,$98F0385A,$54791167,$3447C5B1,$A22177D2,$97E673A9,$0F9C953E,$6FF61021,$7F7BFC8D
  Data.l $E9AC6867,$FC7D3870,$BF2ED1F8,$2220E0B4,$8817E300,$DCCF01E2,$1DDBC979,$E71DE8A1,$4B7AFC16,$48ACE54C,$F983C292,$2F34E378
  Data.l $62761ABF,$340CACCF,$AC05C0DD,$E08EC7FE,$EE8EE073,$7B1656E0,$0F217E7A,$93734258,$228CFC60,$07FCB827,$C2DFBA94,$7BC27F3B
  Data.l $BFCE653D,$F4EFF8CB,$CF2EB9B5,$5FDBADDC,$4DF83EB7,$C847F310,$EF269FCD,$7FD64B3F,$BD7C90BC,$BBF21A47,$20E9A8AF,$01ADC702
  Data.l $AB4A7B29,$E023D028,$D2F050F5,$76B6C309,$062B67D9,$FD5A1B2B,$D88F296E,$E2F3D299,$D1696CAF,$C726C6C2,$1FB68785,$48337B79
  Data.l $F4A6C2FC,$8A7CEB25,$7CEA05E9,$7DE11A77,$D24E2FEF,$BF3F3709,$B7B7B7E9,$D9B6DBD6,$413ED2C1,$A823F06F,$EB7B4FB0,$AE62F5AE
  Data.l $DA79EB45,$D7CD69CC,$5FBA4553,$590ECB96,$72785D3D,$7256DC9F,$F97D6CE4,$C3A74A95,$FD410A59,$10541D66,$444A400F,$D290BB94
  Data.l $7BFE182B,$D42FEE60,$A16F2AF6,$AFEF98F0,$CBBFF9D7,$12916757,$2EDEF77E,$499ED07C,$C7443E92,$7F461D7C,$863F8302,$6682BB32
  Data.l $F1121B61,$616C6F7C,$45D3A372,$F5E3079B,$A272C068,$65F7CB62,$DACF4B75,$F97D58E1,$DCE70CB6,$8618A509,$49C345A7,$D1F78A4E
  Data.l $E78D7EDA,$F7576AB7,$03FBEFA4,$03EFB6B6,$97D9BFF9,$8E0689A7,$7E3F1FD6,$37B2C63C,$9616C360,$FBAC597C,$96B8AB08,$C788BBAC
  Data.l $26E861E7,$44876138,$156AFC26,$AD983DBF,$32263D5B,$E96DD00C,$3D4F45B8,$99921E8A,$42EDCEA3,$6C813F6D,$D9FE047C,$C37FEB05
  Data.l $79FB0661,$C2F0EB80,$B6730B85,$EA25DFB5,$0C07137F,$047016FF,$DDEF6AD6,$14A2D7BB,$F193278E,$0B76DE26,$CC8F38C8,$17A181DD
  Data.l $8886DB71,$0DFB8B3A,$F5627BC4,$307A1A98,$2985AAFD,$4B339BA7,$CE558428,$21CA8047,$BF4AFFA2,$11E59D28,$5C33FCEA,$3C3394F4
  Data.l $C938B18E,$8FBFC461,$FFBFC3E1,$5B006013,$634FC00B,$00860CBD,$49000000,$AE444E45
  Data.b $42,$60,$82
  
  sarko1_png:
  Data.l $474E5089,$0A1A0A0D,$0D000000,$52444849,$8D010000,$78000000,$00000608,$AE8F0E00,$000000CF,$58457419,$666F5374,$72617774
  Data.l $64410065,$2065626F,$67616D49,$61655265,$C9717964,$00003C65,$44498C15,$DA785441,$8C6D9DEC,$C775E55C,$B5D99DCF,$EB36BDB1
  Data.l $D76EC585,$9AB16550,$CAE3149A,$98D408D4,$536DC516,$954445F7,$B952D250,$A95414AD,$52A5FA6A,$4848552A,$0FD2F9B4,$BA803E51
  Data.l $29159A4D,$105A6D22,$26152428,$1415C494,$204E276A,$017E0E31,$62F6C5BF,$AF59777B,$733B3BBD,$3DEFFCFB,$EBD9F78F,$77333B3B
  Data.l $33B99DEE,$4749FFF3,$ECEEFDF7,$F7FE797D,$78BCF39C,$210BEFBE,$0F521084,$42025E05,$D2F52108,$BC09ECD7,$BDAEF1C1,$1EE4FE38
  Data.l $F484213E,$EDD01970,$E8E32924,$08421069,$421068A1,$1068A108,$68A10842,$A1084210,$08421068,$421068A1,$1068A108,$14210842
  Data.l $2108420D,$08420D14,$8FA62D21,$42108097,$8D4782BA,$7EC7563D,$371D8D17,$1C1BC076,$87F3A13F,$4FE5BD8D,$68A799EE,$50BB0C64
  Data.l $36A5DD68,$9AEF7A96,$E60A376E,$D9667A5E,$DC56D3B7,$4355767F,$C68BE252,$BEE7573E,$63DB6A43,$2AB3E79E,$47901022,$78660EE2
  Data.l $990A748A,$0AECC777,$C6038405,$4E724ECB,$0D53D8D1,$362D4608,$2F0D3B1A,$140EDAA4,$5EABD20D,$2B153B8B,$5197AE10,$4841B7AF
  Data.l $EC61589B,$4E1EC61B,$6B7FBCF9,$6AB1FD9E,$229E191B,$FBC0509D,$2DCBF331,$E2778E7B,$DB069955,$673C2C55,$8A53A25E,$0321C907
  Data.l $F6379EC6,$DDE7CA40,$23F79E6B,$4F40EDCB,$BF1DE483,$31CF36C6,$2FEF59DF,$74179CF3,$5E6A60FF,$3CE44A92,$185DB39E,$033922A6
  Data.l $64EF88F9,$AC601820,$34F40ED6,$88083748,$B6D51E2B,$C5481EBB,$0A231915,$82BF6705,$427F20B4,$8C464248,$8EEC64BD,$248DCE0C
  Data.l $0D140BF8,$C344CDD2,$F6591251,$31275996,$4FB71322,$42864551,$66CDDA42,$CB6E30F5,$F5E3FCE8,$7865B954,$E783748A,$021157E1
  Data.l $81CF965F,$106231F8,$1510CCBB,$8CDB3369,$3050CBED,$52BEC6CA,$34F48ECF,$C809B748,$5F889E72,$EDB1B1C7,$270C9841,$635EE46D
  Data.l $973094DF,$D4AF1591,$3453804A,$227AAF48,$88903151,$20714127,$84976279,$6556A4B5,$EAC677FC,$41A291DD,$92093D08,$B0921E4F
  Data.l $8C8ADEE1,$095D4EFF,$1A730B70,$5F300F24,$3E52C840,$16E9EC6B,$2BA80608,$20D14E01,$F27C9084,$24FF6379,$ACBDCD61,$4E013BA9
  Data.l $7CD7E0D1,$8868609E,$A82F9090,$13BA8AB5,$34E616E0,$58384F7A,$3F921340,$213C55E0,$95AA5861,$007A358C,$A0B7A345,$3F921060
  Data.l $C240B790,$FF16A1FB,$9FC0245D,$0A1068A3,$039D2106,$4AA2D2AA,$FC36AEED,$CBC0246D,$08420D14,$F57F1169,$C7C4A9F0,$9B6BE97E
  Data.l $8D0F58D0,$F7ADEEF6,$0B037598,$594D6EB2,$D95B9D4E,$386F4FEC,$20D14E01,$61369084,$1D830304,$3BC1E3A1,$D3EE391B,$D307CFBB
  Data.l $3CA299E9,$6686E2F3,$C62BC27E,$9039248E,$2108A7B5,$8182B5A4,$35F6A3FE,$369B182A,$7CDCC9CC,$5D1D0E41,$68EBCD7D,$07A4B182
  Data.l $A9083452,$24293B02,$BA060819,$C24D7F34,$621B6B1E,$565172FA,$B6C8A8AE,$F2F2332D,$623243EB,$92420444,$70094480,$59E9068A
  Data.l $9070A02D,$0EC60936,$924630F5,$D33D3F1C,$FA971327,$46B1A78D,$CBF62E26,$24796687,$4B8C6899,$68A0D398,$35075210,$8445916B
  Data.l $4908EF82,$CA303043,$68C2C61E,$7BDAA7B8,$CECB4EB6,$2F0327BB,$41FEDF63,$8AF5BD19,$39F77A7C,$977DC4F9,$8814FC92,$FF3358C5
  Data.l $D2085F0B,$3543DE73,$C2C570A1,$15B1A3CC,$B2B3CFEA,$30566908,$6F93341E,$77AE384B,$950F0C43,$E8D47082,$53E557AD,$048226BB
  Data.l $877BB3F8,$5F72FA65,$763AAE10,$6FCEE1AA,$DE3F0091,$17C3FFCC,$F784F482,$EE322310,$B9764AE0,$514708E0,$BCAB8FDF,$C109A4BC
  Data.l $5F2663D8,$48FD8496,$1878DC7D,$F1BF7C48,$FBB275A3,$F6042FD7,$F2C34BEC,$2537ABE2,$CD6349FD,$34F44FFE,$8C8AAF48,$1B1D98E7
  Data.l $C429D3DC,$93EB1FA2,$44227E34,$6673E305,$82A4D5F2,$DD1349B1,$41CA076B,$C50829AD,$EC8AFECA,$E052EFBA,$A9A0247D,$83453804
  Data.l $1F6E32F4,$D4BE9E5C,$603EF39E,$1CD8C95B,$2849152F,$C9998F18,$06391B17,$BF916855,$EAD82080,$080A10B4,$3841D607,$4E429A10
  Data.l $FD8B83E3,$B8D67E49,$A7009134,$F75E9068,$62B4EC34,$7D0589BC,$ECC62A99,$065E897C,$E8182849,$46D1F078,$0F3D8ABD,$879B959E
  Data.l $288D414A,$C235AFCC,$AAE4F471,$26202840,$1CBF6E5B,$1E0FC324,$22D2481A,$B804E9BC,$D20D3985,$23A1EADB,$4174E9F6,$8E651A73
  Data.l $881247E4,$204E2A05,$4699F51C,$78CBBD8F,$70FC6F12,$B0BB905D,$05FC8222,$085B1540,$A8E11207,$469C8B72,$804E9A02,$89083453
  Data.l $58A0C100,$81828490,$30DF4C6A,$F1C93BB6,$1D0E20F0,$196D7D5B,$8A15849E,$ED1E66D3,$3F109032,$D24D6C74,$D696389F,$14F0CAFF
  Data.l $83AF1121,$03050690,$4A5F6955,$E196182A,$CB25A5F5,$A2840A10,$9852FDB6,$321786F4,$91972C91,$A29C024A,$CD210841,$4562060B
  Data.l $B5FB1AAF,$2F03CE66,$E9D6C762,$8170E3C0,$073C8197,$213C2240,$024292E3,$0841A29C,$3B61CD21,$ECDEDC1E,$98B79089,$7082152B
  Data.l $561C2B94,$B5209A30,$3985B804,$6908420D,$184A8F9C,$AD2DBA92,$ED7AA213,$82A7BBCE,$27B6539A,$CFB72DDB,$ADAFCBCA,$A9B4E66F
  Data.l $1A29C025,$0C921084,$16E81678,$93CD3864,$D7B4FC22,$0DA6C408,$4475AFAB,$B540C108,$327826DB,$A29E7FED,$F5210841,$A384BF73
  Data.l $F5640DED,$2A735007,$00F99185,$502FE012,$A4210834,$1476A03D,$4AAED5AA,$8CE864E3,$95D37470,$7A74FE60,$2E32E142,$2DC02629
  Data.l $4213844C,$60D06D48,$0534D9EF,$8F9BDD03,$75939C6C,$D4F96503,$2D044E6F,$F52453BE,$0D3D3804,$8FA90842,$44F630BF,$F544279A
  Data.l $F8C1B45A,$60C1FEDE,$033BE0F9,$0BFEFBB2,$94AA2D41,$4E013D48,$4210834F,$DA68F36A,$AD500182,$E09398F6,$8C3DA346,$F870918F
  Data.l $CC9E38D6,$345082EA,$1E242108,$58FB52F4,$0844279A,$9ED83D0A,$7652BB3E,$98D8B5DC,$0E8376CF,$4C8148E1,$8616E012,$642108A7
  Data.l $D1B92829,$CDC3E0F1,$B0E2049C,$AD7F8572,$31E40FEB,$A1FAD9EE,$26B73F8C,$E869541C,$D0F23C82,$2DAAA099,$2AA103C4,$029E038C
  Data.l $120C915F,$420D14E0,$F41EB908,$6375FB54,$55ED360F,$3DCACE8C,$EF409BC6,$6059C8B5,$79B9A500,$3B08102F,$048412A8,$A461E1EB
  Data.l $15651824,$68A0CC8D,$3837832C,$7F76ECBE,$122F0F72,$4973DDC9,$17B68312,$207B1BCF,$1AA1938D,$C731BA2D,$65B6AD90,$9818F237
  Data.l $C2510777,$5AE6DEF2,$9664BB7D,$1068A700,$4322C842,$DEF2B612,$6D09D691,$5E678BBB,$BC8C10DC,$A631F187,$77818A67,$7C7092E1
  Data.l $993C6A8C,$68A285F5,$9D7A4210,$91FB0911,$13ED23BA,$BE851423,$C63630A4,$E51B73F8,$0A5DF713,$A72065DA,$DD644F01,$1B34859A
  Data.l $009A65F5,$421068A7,$6366C888,$3B1491DF,$58C1741E,$6C2EF018,$F98EDC32,$6203AF0D,$C914E581,$616E0134,$48425B95,$C24DB2AF
  Data.l $1133CDAE,$4819780C,$70B3C384,$2C437B5B,$9CBC69E0,$A4431E5E,$7A700905,$5E90841A,$3B095EE6,$F2CA1C1E,$8524208F,$7E3EF911
  Data.l $75E054F7,$8063A9BC,$CA7835A3,$138C95EC,$420D14E0,$4BB2AF48,$AB525AC2,$3C3938B2,$822EE40C,$AE31BF71,$4135D1F7,$1936E6F7
  Data.l $CA48729E,$8BAAD632,$BD20D147,$D7CC6780,$B87CE8A9,$B3DC7061,$DE638363,$E178E7AE,$C643CB5D,$3DB0929E,$30402646,$1EC1B5E6
  Data.l $83425506,$6FFB7DBE,$E681DD0C,$A388C7C7,$6EF00925,$63518D11,$F0AB19EF,$42F8E85D,$CF53A0BD,$214E2759,$153EEBEF,$5B86229D
  Data.l $F3AFA9D4,$644DB3BE,$E2AECE69,$CE73DF9C,$716239E5,$AEB378ED,$1AE8E144,$40B150EE,$5B9BB54F,$FC9107F1,$10B03B5E,$9A231578
  Data.l $EF8B46F8,$74243B14,$BC024969,$58E3445B,$4A7AE78A,$C623AE1F,$FFD8EAA6,$26582984,$380AFCEA,$537EC75D,$9DBBB7FA,$2BCC16A2
  Data.l $5AB03C34,$99DF439F,$59415EBA,$85382FD7,$161CF5BA,$3828E11C,$A239E1C2,$F39E7152,$3EC65D3E,$FB36CEFD,$ACDC7037,$F3D09F2E
  Data.l $4EE4CE93,$B5987F63,$409BC050,$BE2D02AE,$D81BCAD1,$15CED3F0,$81D78193,$AB41DED6,$8C9943F0,$04B2D4DB,$C68AA778,$B551B566
  Data.l $10BE458F,$5940A77D,$FD114C2E,$D8C1BD92,$19F0C6DD,$D7E73DB0,$FCB6A300,$E987CEA4,$DF7ACC60,$FD9C5699,$F6AF9C16,$DD65BEE8
  Data.l $57635DF7,$538AE59D,$345CBB08,$E01C1D16,$716C2417,$B5848B7B,$B1EBD655,$9517BD25,$88511788,$022030F1,$14388E73,$DF73DCAB
  Data.l $8E0A32F1,$15A9D958,$A5E3A288,$14C1A15A,$2C93C509,$B5142977,$9E09F840,$78C5C604,$6A0308D3,$29CFA146,$CF020974,$65D2E262
  Data.l $1CA6B759,$B4464A88,$679E012C,$8C8BC0D1,$551F70AA,$EDD3ACDB,$5602277C,$AA2D7035,$0A8D6EB5,$1011C547,$DBED7C89,$F016B2F9
  Data.l $5F705AF3,$1579F9D5,$25F38A9C,$640A745F,$A7345C37,$5F382EFB,$6F1173F1,$FA14E0A1,$CA08F525,$7DDDC291,$FAC77C56,$CECAFD9C
  Data.l $CF565DF3,$870910A6,$82E78C49,$7B181FE5,$C754435B,$1AE5C8F9,$B60F1594,$F72C2852,$420E9D6C,$78BCCF50,$8C43F84B,$DE3611C7
  Data.l $71E6B85B,$728E1464,$05F56B19,$0C68A76F,$53BE4DEB,$2463B36D,$8379A25B,$89411542,$A715D216,$78C52FC0,$184C5E1C,$B5CE77CA
  Data.l $8F469910,$94509CF3,$AA169BFB,$C8FCAE84,$C7DB8B6F,$222F0A15,$479CD134,$16D6FF51,$612C7F63,$EBA0A36E,$9F487CDC,$5E39EBEE
  Data.l $1C4761CB,$0DBEB93D,$8716BD94,$EE160435,$E523F618,$E3A3DCC5,$02D5B1EA,$75B3CFA1,$21A137EC,$4A450A37,$1585FDA0,$051FF40F
  Data.l $57828210,$15EB7A31,$4CCB6BB9,$976F4916,$D5FF6319,$E7F1A2ED,$37AB3EC6,$1E48487A,$17860A88,$BEEE2E23,$12BC557D,$5C8C463F
  Data.l $BC73C56F,$6C723F00,$770F11C1,$256C2DD9,$39E51426,$14E78CDE,$3A78E2FE,$7A508C5E,$DAADBF31,$EBCF75EF,$447E417A,$D2CBB690
  Data.l $31357E44,$B665D5F8,$151981E5,$C3C05AB6,$73CEAB7C,$BF73A81E,$D5BCF4B7,$96DFEC3C,$8B9DA130,$EDEFCB0F,$4F0831BF,$0A543CDD
  Data.l $7AA1EB1A,$F01AF22D,$1C75E034,$97B9963A,$201FA031,$C19EF5C7,$A83EBA10,$FC5953F3,$9BF7CF51,$675220AB,$81789B8F,$5FC9A031
  Data.l $1AEE8CB2,$46C465FC,$35F9B662,$BA1D79B6,$2373CE2D,$8E3C083D,$CD6FCC60,$F8946461,$8EB3846E,$E6701C98,$49A679AF,$856EEA7A
  Data.l $C0A3C068,$F3F7EC80,$748422B1,$0A57E833,$E4168E79,$4A619A32,$7AA0E3C5,$788D8726,$CAE61DD4,$37053C3A,$3CC2DBF2,$07A42105
  Data.l $4DAC7A08,$ACDAD7AF,$1DC34B40,$FE47086A,$67072369,$9A2161D9,$C141BFEA,$5C908420,$3EE36F02,$47FC65E3,$E1650723,$F7902069
  Data.l $EF22B579,$E484210B,$FBA0D406,$8CE7B19A,$D392481D,$50345B48,$6371EA3B,$086F791B,$A0172421,$F44636EA,$B0714783,$25A593D9
  Data.l $F866E81A,$4FEB0909,$C9084213,$FB1BAF0F,$D64EB4BB,$1BC34E54,$1077471C,$8D7B1B4F,$21084182,$4F624FDD,$5A0608C3,$32597E63
  Data.l $109E93EA,$BCD34842,$35772929,$8C344892,$26603C60,$FB0C955F,$108427A4,$7B740892,$1B0975F3,$FB481F54,$868B0DE4,$97740C11
  Data.l $83052CF0,$01724210,$F7A3685A,$F227746B,$A5C6C62F,$B2CB7EBE,$18230D17,$8DDEB1B6,$10844FBC,$409136D2,$2A93539F,$870F680E
  Data.l $697EC154,$754C60C1,$8C11868B,$618C1561,$084233DE,$6048A969,$15299A7C,$7EC65389,$129BEC64,$699DA156,$C4698FE5,$5AB540D3
  Data.l $8426EEB6,$1278D690,$409BD417,$503FF7F7,$7453028F,$B2476838,$8B75396C,$E7B93F86,$A06DE305,$BCE3EFAE,$921084A7,$497127BA
  Data.l $C38A84ED,$644C250F,$47164CFF,$0D3B6CD6,$708C34E5,$0E11BDFC,$19FDA38C,$084267DE,$45454449,$07C45E02,$8157DEC6,$C258FD80
  Data.l $9DA953F0,$A26A44DE,$B091ECA1,$35DFA94F,$86385AB6,$2C842100,$2B843C07,$046045EA,$0E12A3C5,$243B0538,$1DC9F861,$34D73936
  Data.l $DBC61A2C,$E36F1928,$63ECCC4F,$B6311EC6,$2104CF9E,$89112C84,$84091559,$40A98E96,$D7788BC0,$576319D8,$A7214725,$080D3DAC
  Data.l $37E6BCC7,$D87B19CE,$9BB188D8,$12DABD85,$780F7A42,$74C1A807,$88E10551,$BD1B8384,$59C55EA5,$0AB28915,$C6934745,$249B7DC8
  Data.l $8FEF951C,$D8CC7D8C,$0A30C62D,$8456C309,$09176E90,$A8D023E4,$AB096DEE,$CE2442C1,$2A6E184B,$5E7EBEEB,$757691FF,$0DA48E8D
  Data.l $CB7FAC9A,$BF634ED8,$5517EC63,$70956E3C,$080A0D7C,$45D3A421,$9A806202,$5849EF4D,$814209BB,$8885D370,$F9BA5440,$35D5A462
  Data.l $E2182E3A,$87FC6877,$40316F1E,$FD8C47EE,$32DFB1BE,$07DEAA36,$82748421,$184B4C48,$88ED3A56,$5AA7EC04,$AF72D9D6,$97981D28
  Data.l $586883C8,$A07D92E0,$3F92059E,$3FEC60FF,$B199FD8D,$49B630DF,$9C971FB2,$FD1A4210,$C250FDE8,$EAFBC47C,$F5A5A04D,$3D0C25F7
  Data.l $17809159,$21A59051,$5DAF72A7,$700A2CAC,$5C38DD5F,$1B097EDC,$F1FEA0A7,$AD4318AF,$FB1A4FAB,$8AC86139,$913ED210,$DE9B35B0
  Data.l $24EDA593,$A32F53DE,$415865A2,$AF52AACB,$442B448A,$E6F175C3,$FEC382F4,$4AFFD8C7,$56C915D8,$172DE863,$D6D1050D,$6D59FD03
  Data.l $4D243630,$08450C0E,$63501121,$127A82E9,$43CC2527,$121366A0,$CEC9C8D7,$A9A862C8,$39A0CB5F,$8BD6B65E,$5879EB86,$ABE10E57
  Data.l $BBFDA89F,$D80E7984,$4BBB1BCF,$108306C2,$D640E412,$84211BD2,$27122134,$A88E2454,$0AB6F117,$932D65C7,$B42B1020,$63D49A0C
  Data.l $B5F2F0AF,$1396345F,$C1BD3993,$FB1BD53F,$7F227ABC,$AC4D6120,$A36EC68D,$6A421080,$1529C488,$DE75F786,$EF3891B6,$8D4AC108
  Data.l $0768606C,$CABECCB4,$A279D74B,$A2903D61,$8F152ADA,$CFF6347F,$F6376EC6,$FFB6127B,$F03F6DB0,$84868075,$24DD6908,$4848506C
  Data.l $C591512F,$0E2038AE,$A3BF5448,$05447182,$8565ACA2,$D45449CD,$90F8E910,$4573B097,$60087DC3,$36E1BD25,$030781A7,$EBEFC6B1
  Data.l $C2909B36,$644E466F,$56BFB19B,$10BD7161,$21095E8F,$AF14295D,$C2457B1A,$330835CA,$4B62CB4D,$FBDEFB6B,$E978558E,$E23453BA
  Data.l $4CCB101E,$FA0A0C44,$FB57EC30,$5843096F,$0115FAB3,$098D03AF,$AFDA7507,$B86C68F3,$23F6C243,$4ADFBA7D,$4B5B0EDD,$5C90858F
  Data.l $1D935080,$7AACE86C,$BBEAEF12,$73DF5FBE,$8A0F29DF,$1ECB9F3A,$ED1A2961,$0A2FD7C5,$3BDBCAB7,$22B0B56A,$8F591B31,$9BE21870
  Data.l $1AA17308,$FEB3A8F0,$EDBF670E,$929DFCCE,$29F47C7C,$5293A175,$C3F120EF,$7C23922A,$DF4E49C4,$2733E465,$D24083D5,$4EBBED1A
  Data.l $A10CFBEA,$66EBAA38,$EBF79DF5,$45080F28,$2C6C29A3,$6CE9D3D3,$D4573ECC,$E3F345F0,$A806BC2E,$0AAF7044,$A3D29D88,$A4A2AD22
  Data.l $1CF59DEF,$76BBE9CE,$B501854E,$D157DF28,$A00142B8,$CF12B468,$3D4F0711,$45F39281,$509CABD2,$E3C737FB,$83A07082,$F1F02FC9
  Data.l $0D792927,$6B4C2BC8,$38410FE1,$ED841EA3,$AEB0E382,$92F7D29F,$468A06B9,$A8DC1E2E,$07AE4BEB,$4BAF725F,$A2911D58,$B7E7BF91
  Data.l $47E75912,$6472ED9E,$DE663F7F,$2257064D,$EB317AC7,$1B14456C,$81B9B1EA,$0A8CF2E8,$65DA94C3,$1551C73D,$D8B2D387,$A726C206
  Data.l $68A06399,$F3C5FEE4,$D3D0A99C,$02DB8AA8,$740597B6,$7C400B46,$8EBE2321,$EA8398EA,$E190DD8D,$15828A73,$B1A27B1D,$6832C219
  Data.l $FE78804B,$951E23BC,$8AEFE148,$6D914DC0,$80EFB351,$46E1BB1D,$3910B75D,$A8041D9F,$B35A1FA4,$AE8AEDBA,$22B5BFB3,$F906838B
  Data.l $1A28A77C,$F85E04DD,$AF85E721,$56CC7BA8,$A533D79E,$5C8F2AD7,$33D82FD5,$6964176A,$E46298ED,$C55A3BAB,$203C7EDA,$5CC685AF
  Data.l $A6EBACBF,$86D96BF4,$B0436C52,$428CBA53,$BE26151B,$869D6C64,$7AE7AC54,$90C37F5E,$E71537BE,$29DE7D4B,$9D90EDA4,$D9388E0B
  Data.l $18828EDF,$42DB7D31,$087E3599,$5CCDA345,$00EEC592,$06896748,$C67DCF0A,$9BD8C6FE,$7AEFE14E,$5E645E8B,$178708AA,$0B507FD9
  Data.l $3F25FB76,$1B63ECEF,$C7EBF580,$636AAA06,$A99FCA54,$AF9D1578,$5E582B71,$D491308D,$A2842798,$47C2B391,$A33CBE62,$675EDCF1
  Data.l $1F7FCDA6,$B5C7EF5F,$CB3546C0,$5FFD8DC7,$27E97B8D,$DAB176DC,$EE4FE273,$30A23B29,$975F655B,$3790CF25,$8927CE38,$1C3A3450
  Data.l $E9F5F22F,$4B240A36,$80768D3D,$9F6119C2,$4E2854D7,$343BC5E6,$1119E002,$484273E1,$DB86880F,$1A744085,$AD26F317,$C97C0D15
  Data.l $028F579F,$C6D3C4DE,$C862C90E,$221455A7,$F515131F,$3AF53C14,$D9B76CB0,$956C05DE,$99E392D2,$E8D14210,$F5C85670,$C5E3B883
  Data.l $DB11AD47,$6119C875,$8B56A1E3,$FBAF4546,$ABFD8D77,$D98B3984,$487D7836,$CFA6DF6A,$073EA0C2,$6D5B2F10,$B0C102B4,$F878AB3B
  Data.l $DEB203D6,$12B75987,$F9679666,$468A10F8,$7CE0B367,$5481DA1D,$714BF5FA,$25562CBD,$C98C8B24,$66C6BCD2,$04805915,$8E6247F9
  Data.l $6A89E141,$62CAEFA9,$05D84C55,$DB1A4C59,$635125CE,$F77E2D0D,$6A13584A,$2213DA5E,$A9DFFDC4,$AFB6161F,$7466FC22,$45613313
  Data.l $BCC188C3,$E75F66FE,$6FD1FFED,$CCADD196,$2C0E7A0D,$C1C2371F,$A284791A,$1EB8C1D1,$FB164944,$AA6D47C9,$467CC293,$AB55DF1C
  Data.l $E78EED87,$8088EFD0,$7FB76A15,$94A73720,$CF0ECF07,$36D5F3C0,$56BFC29A,$30E2032E,$9085C7CD,$AA8D12EE,$716F0265,$D0E81C2A
  Data.l $3D4ABDDF,$AA435B0D,$379F9912,$A0781182,$38406DC8,$FCD1015C,$7EE8A586,$4E6130A0,$C78E157A,$F9FDBA4D,$8F43509E,$6BD517A9
  Data.l $C41EACB8,$5D9C2D75,$6DE67031,$9E8AED75,$850468B3,$A7A10EEF,$71974841,$59F796B9,$EDD063CB,$A1082AF4,$E34841A7,$09156420
  Data.l $4F42115B,$2A6E9083,$B1FAE5E7,$7E6DDC55,$3D70912D,$0832E612,$EE908345,$6B4B28A5,$FE35C571,$9EDE1374,$2D835EDB,$68A109C4
  Data.l $AE22DE90,$1D75EFCA,$A5B53A0B,$84222224,$2FFF0890,$FE6900C0,$B56DAF65,$0000A5EF,$45490000,$42AE444E
  Data.b $60,$82
EndDataSection ;}

Dernière modification par Ar-S le lun. 20/févr./2012 18:11, modifié 2 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Sprite3D : Collision et arrière plan.

Message par Fig »

si tu ne rotate ni ne zoom tes sprites 3d tu peux utiliser la fonction classique de collision avec les sprites 2d qui t'ont servi à les créer.
sinon j'ai une méthode qui fonctionne avec le redimensionnement mais pas la rotation...
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Sprite3D : Collision et arrière plan.

Message par Ar-S »

Code : Tout sélectionner

sinon j'ai une méthode qui fonctionne avec le redimensionnement
Dis toujours. Je n'utilise pas rotation ni zoom pour le moment (j'avais ajouté la structure au cas ou).
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Sprite3D : Collision et arrière plan.

Message par Fig »

bon j'avais écris un truc et ce puta.. de smartphone la perdu.

bref la 1ère méthode c utiliser spritepixelcollision avec les sprites 2d que tu as utilisé pour créer les sprites 3d.
la seconde utilise une map et oblige à tester les sprites avant la boucle principale ça permet le zoom mais pas la rotation
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Sprite3D : Collision et arrière plan.

Message par Ar-S »

Mais la question que je me pose est qu'à aucun moment je n'affiche les Sprite2D.
Je les charge 1 fois pour ensuite créer mes sprites3D avec.
spritepixelcollision ou spritecollision nécessitent que les sprites2D soient affichés je suppose ?

P.S : désolé pour ta perte de temps smarphonesque, ça doit faire râler ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Sprite3D : Collision et arrière plan.

Message par Ar-S »

Ar-S a écrit :Mais la question que je me pose est qu'à aucun moment je n'affiche les Sprite2D.
Je les charge 1 fois pour ensuite créer mes sprites3D avec.
spritepixelcollision ou spritecollision nécessitent que les sprites2D soient affichés je suppose ?

Si j'ajoute ça dans ma boucle, ça ne marche pas.

Code : Tout sélectionner

Resultat = SpritePixelCollision(#SARKO, SP(#SARKO)\posX, SP(#SARKO)\PosY, #BULLE,SP(#BULLE)\posX, SP(#BULLE)\PosY)
    If Resultat <> 0
      Debug "boom"
    EndIf
P.S : désolé pour ta perte de temps smarphonesque, ça doit faire râler ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: Sprite3D : Collision et arrière plan.

Message par Cool Dji »

Hello Ar-S,

Pas de réponse sur les collisions Sprite3D mais normalement et même sans les afficher tu dois pouvoir tester 2 sprites 2D entre eux.

Sinon, pour pas mal de collisions, des test sur les coordonnées x, y fonctionnement bien.

Jadis, je testais quelques pixels bien choisis du sprite sur les couleurs du masque du décor mais ça ne résoud pas la question du zoom ou du rotate...

Bon courage :D
Only PureBasic makes it possible
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Sprite3D : Collision et arrière plan.

Message par comtois »

il faut tester toutes les bulles , il faut donc mettre le test dans ta boucle For i = 10 To 20

Code : Tout sélectionner

    Resultat = SpritePixelCollision(#SARKO, SP(#SARKO)\posX, SP(#SARKO)\PosY, #BULLE,SP(i)\posX, SP(i)\PosY)
    If Resultat <> 0
      Debug "boom"
    EndIf
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Sprite3D : Collision et arrière plan.

Message par Fig »

Si tu n'as pas besoin d'une grande précision, tu peux tester un disque (pour les rotations) ou un rectangle(coordonnées) au lieu du contour de ton sprite.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Sprite3D : Collision et arrière plan.

Message par Ar-S »

comtois a écrit :il faut tester toutes les bulles , il faut donc mettre le test dans ta boucle For i = 10 To 20

Code : Tout sélectionner

    Resultat = SpritePixelCollision(#SARKO, SP(#SARKO)\posX, SP(#SARKO)\PosY, #BULLE,SP(i)\posX, SP(i)\PosY)
    If Resultat <> 0
      Debug "boom"
    EndIf

J'ai commencé avec ce principe en utilisant les coordonnées des sprites.

Code : Tout sélectionner

If SP(i)\posX + SP(i)\TailleX = SP(#SARKO3D)\posX And SP(i)\PosY < SP(#SARKO3D)\PosY + SP(#SARKO3D)\TailleY  And SP(i)\PosY > SP(#SARKO3D)\PosY - SP(#SARKO3D)\TailleY
        Beep(500,50)
        Debug "Booooooo bulle " + Str(i)
      EndIf
C'est pas encore ça mais je vais poursuivre mes tests.
Merci à vous.
Je complèterai
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Sprite3D : Collision et arrière plan.

Message par Fig »

Avec la méthode spritepixelcollision, c'est plus précis et c'est assez rapide. (un test de coordonné est d'abord effectué puis si c'est concluant un test au pixel près est fait)
Bonne continuation, en espérant que le SarkoI s'ecrase bientôt :mrgreen:
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Sprite3D : Collision et arrière plan.

Message par Ar-S »

Spritecolision nécessite que j'ai x sprite2D hors par exemple, j'ai 10 bulles. Ce sont 10 sprite3d()

Dans ma boucle,

Code : Tout sélectionner

If SP(i)\posX + SP(i)\TailleX = SP(#SARKO3D)\posX And SP(i)\PosY < SP(#SARKO3D)\PosY + SP(#SARKO3D)\TailleY  And SP(i)\PosY > SP(#SARKO3D)\PosY - SP(#SARKO3D)\TailleY
        
        Beep(500,50)
        Debug "Booooooo bulle " + Str(i)
      EndIf
ça marche si la bulle touche le nez de l'avion (a quelques pixels prés il faut que je peaufine.

Question suivante.
Comment mettre une image de fond, qui serve d'arrière plan ?
Sprite3D ? Sprite2D ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Sprite3D : Collision et arrière plan.

Message par Fig »

Non, tu te trompes, tu n'as pas besoin de 10 sprites 2d pour tester les collisions.
Bon, si tu permets je vais modifier ton code pour te montrer...
Dernière modification par Fig le lun. 20/févr./2012 18:37, modifié 1 fois.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Sprite3D : Collision et arrière plan.

Message par Ar-S »

Je suis arrivé a des résultats satisfaisant en découpant au plus juste mes sprites et en modifiant mes tests collision comme ceci.

Code : Tout sélectionner

If SP(i)\posX + SP(i)\TailleX > SP(#SARKO3D)\posX And SP(i)\posX < SP(#SARKO3D)\posX + SP(#SARKO3D)\TailleX 
        If SP(i)\PosY < SP(#SARKO3D)\PosY + SP(#SARKO3D)\TailleY  And SP(i)\PosY > SP(#SARKO3D)\PosY - SP(#SARKO3D)\TailleY
        
       Beep(500,50)
       Debug "Booooooo bulle " + Str(i)
        
        EndIf
      EndIf
c'est évidement de la bricole car ça marche bien a condition d'avoir un sprite réctangulaire, ce qui n'est pas le cas de mon spritesarko
Fig a écrit :Non, tu te trompes, tu n'as pas besoin de 10 sprites 2d pour tester les collisions.
Bon, si tu permets je vais modifier ton code pour te montrer...
Que je comprenne une fois pour toute la gestion des sprite3D je veux bien car j'avoue être un peu paumé.
je les utilise car j'ai lu dans beaucoup de topics que c'était bien plus fluide que les sprites2D
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Sprite3D : Collision et arrière plan.

Message par Fig »

Code : Tout sélectionner

If InitSprite() = 0 Or InitKeyboard()=0 Or InitMouse()=0 Or InitSprite3D()=0:MessageRequester("Error","Error DirectX",0):EndIf
ExamineDesktops()
xmax=DesktopWidth(0)
ymax=DesktopHeight(0)
;ouvre un écran
OpenScreen(xmax,ymax,DesktopDepth(0),"test",#PB_Screen_WaitSynchronization,60)

Structure sprit
  X.i
  Y.i
  vit.i
  sp.i
  sensY.b
EndStructure
Structure tir
  X.i
  Y.i
EndStructure
NewList SP.sprit()
NewList tir.tir()
;créer 10 sprites différents
For i=0 To 10
  CreateSprite(i,64,64,#PB_Sprite_Texture)
  StartDrawing(SpriteOutput(i))
  Circle(32,32,30,RGB(Random(255),Random(255),Random(255)))
  Circle(Random(64),Random(64),Random(30),#Black)
  StopDrawing()
  CreateSprite3D(i,i)
Next i

;créer le sprite de l'avion
CreateSprite(100,64,64,#PB_Sprite_Texture)
StartDrawing(SpriteOutput(100))
Box(0,20,63,40,RGB(Random(255),Random(255),Random(255)))
StopDrawing()
CreateSprite3D(100,100)
X_avion=500:Y_avion=400

;creer le sprite du tir
CreateSprite(101,8,8,#PB_Sprite_Texture)
StartDrawing(SpriteOutput(101))
Box(0,0,7,7,RGB(Random(255),Random(255),Random(255)))
StopDrawing()
CreateSprite3D(101,101)

;creer 20 bulles
For u=1 To 20
  AddElement(SP())
  SP()\X= Random(xmax*100)
  SP()\Y= Random(ymax*100)
  SP()\vit=Random(400)+100
  SP()\sensY=1
  SP()\sp=Random(10)
Next u

Repeat
  FlipBuffers()
  ClearScreen(#Black)
  ExamineKeyboard()
  ExamineMouse()
  X_avion=MouseX()
  Y_avion=MouseY()
  If KeyboardReleased(#PB_Key_Space) And ListSize(tir())<5 ;on tir si il y a moins de 5 tir en cours
    AddElement(tir())
    tir()\x=X_avion
    tir()\y=Y_avion
  EndIf
  ;on déplace le tir
  ForEach tir()
    tir()\x-10
    If tir()\x<0:DeleteElement(tir()):EndIf ;si on est hors de l'ecran on fait disparaitre le tir 
  Next
  
  ForEach sp()
    ;vitesse des bulles
    sp()\x+sp()\vit
    sp()\y+sp()\vit*SP()\sensY
    ;test collision entre la bulle et l'avion
    If SpritePixelCollision(sp()\sp,sp()\x/100,sp()\y/100,100,X_avion,Y_avion):End:EndIf ;perdu
    If sp()\y<0 Or sp()\y>(ymax-64)*100:SP()\sensY*-1:EndIf
    If sp()\x>xmax*100:sp()\x=-64*100:EndIf   
  Next
  
  
  Start3D()
  ForEach sp() 
    ;affichage de la bulle
    DisplaySprite3D(sp()\sp,sp()\x/100,sp()\y/100)
    ForEach tir()
      If SpritePixelCollision(sp()\sp,sp()\x/100,sp()\y/100,101,tir()\x,tir()\y):DeleteElement(sp()):DeleteElement(tir()):EndIf
    Next  
  Next
  ;affiche le tir
  ForEach tir()
    DisplaySprite3D(101,tir()\x,tir()\y)
  Next
  ;affichage de l'avion
  DisplaySprite3D(100,X_avion,Y_avion)
  Stop3D()
   
Until KeyboardPushed(#PB_Key_Escape)
Voila ma version... Évidemment je n'ai pas ton talent graphique... Enfin, la collision fonctionne du moment où on ne redimensionne pas les sprites.

Pour le sprite de fond, tu affiche une image classique pour la partie qui n'entre pas en collision, et des sprites séparés pour les murs... ou alors tu fais des zones "en dur" suffisamment rectangulaires pour les tester...
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Répondre