Refactoring

This commit is contained in:
MaddoScientisto 2024-04-28 21:28:25 +02:00
commit 8ecf21aba3
8 changed files with 193 additions and 160 deletions

View file

@ -6,7 +6,7 @@ version 2
:: sfx/
:: gfx/0.gfx
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
NC0yOCAxNTowMDo0NSIscmV2aXNpb249MTMzM11dbHo0AHsMAAA3RAAA8xR7WzBdPXtibXA9cHh1
NC0yOCAxOToyNjo0OSIscmV2aXNpb249MTM4Nl1dbHo0ABENAADjRAAA8xR7WzBdPXtibXA9cHh1
AEMgEBAE8PAsZmxhZ3M9MCxwYW5feAgA2nk9MCx6b29tPTExfSwyAPEIrxsj3gN_A94j3gP_CRNu
A04TbiNOA34TAP8DjgM_A04DLiN_Iy4DngP_FAMuXgAd8AnwRU2ALSYtUB1mHQUgHYYNFQAdlh0V
DaYEAMMNFQANlh0FEL0F8BNYAB8zWAAV8CpQRIAUTx8UUA8Ujx8EQC8UTx8kQA8UHx9EDg8ZBEAP
@ -17,92 +17,95 @@ PxlQaS5ZThkOGV5ZHnlQHhmwAwAhwA4DAF8pwBnwF1sAHmMSrxMwDhMCABMgCAAPCgAE8Q8PEa4N
IAOvGwMeAAOsAwUOAANMDxRMAw4FAAM8KzwRAAAIABMeDwCPEAOsAw4goyCGAg8PFgMt-AHPEy8R
DxNfEQ8TPxEPEwwfDQAoDE8OACMsLw4AtBwPEX8TDC8RPxMfIAAAGwAfTw0ADvEAPA4vES4MLY4d
DgwtDm0OBwAnDF0IAH88Diw9Dh3eyAAd2fQMDx80HnQeNB4kHiQGAPEARA4kHtQehB4kDpQehA40
BAAGHgAQhAQAPw70CQUDHaP-FgAGBwYHDgcGAgD0BA4XBQcGDgUHBgcFFgcGDhYHBgUdAIAFBw4X
BAAGHgAQhAQAPw70Cf4BHaP-FgAGBwYHDgcGAgD0BA4XBQcGDgUHBgcFFgcGDhYHBgUdAIAFBw4X
BgcGDgoAARIARA4G-gAKAAMGACQWBU8AEAUGABMXGAASBQYAJBYHHgACBgAR-n0AB0IAADAABEIA
MgUGBzAABx4AEgUgAAFCAANOAAUeAB8H-AAegBUDDA8QDA4clwMybxUOCgBRHQwdDC0LALEdDgwd
DA4tDhwOLQoAUgwtHC0MCgA0Dl0OCgA-DD0MDAACBSIABTYABUoAAl8AMy0MTXMAI20MCQA-DP0D
xQAd8QEfFC8WHxSEHgYfFh5EDx8kCQBjNB8fJB4vCACSHxYGHhQPHwQdCwAgBB0KAFMsHgQdVAYA
YAYcHgQNZAcAU1QNFB4sBgBwFA0UHRQeHDEABAkAMA0kHRoAAC0APywehKoAHVWEHxQGH6wAYQQf
H1QeLwgAMSQdBAoAEB0JACYcBgkAIBQNCQAxLB5UBgBRBB0kDRStAAO0AAPBAAIkAAU1ABNUBwAB
xQBPhB4sHqgAHf8hBhcWFw8WDRYdFg8SFhcWBw8WHRYdBg8SBxYXFg8WBh0WHQ8SFxYXBg8WFh0W
DQ8SMAARQH8WfxIiABIOLQAAIQAQDiwAEAwfABAOKgAQDE0AEA5YABUMKQAfDCgAAS9_fFQEPWd0
DxQODQQCACYUDRAAAAoA-wX-GxQfEV8bHxGfGx8RbxsfEf8bDWcGHfEUQF8UcB4PFT8fLkAeDxUO
Px8PFQ4NDiAeDQ4NPx8ODQ4NDhAGAGE8DQ4NHgALADENDhwHABE_BgAhHA4HABEeBgAnDhQaACUU
DhoA4CwNDixeTA4NTA0OAA48FgBSPA4QDixaAEEOIA4MCgBhDQ4cDkAuCgBPHnBeQFABHQPLAAA-
AFEuQA4PH0kAYw4NLiAOLAsAMRwOEMkAYA4NPAAOTAgAUUwuTC5MogAgFEy2ADccFBzOACwcHucA
NQ4AHhkACBoBEiDUAG4NHkAuPC68AA9aB0Dg8BOdUA1-EA1QDQ5fGA4HAEIMPx4MCQA-CxwLCgAS
EjsIABBcBgBvfg1QnfAThgAwEzddAD8HHAcKABIeN4UADz0BTmD-FAEADiACABE_BgAyDgAeCAA-
EP4CGQA2Hw7IAE8AXwdQHxYGBx4JALEGBw4WHhYeZgcGHgMAAQIARRYelh6RBxEHKgAxph4WqQcF
KABSVh4WHlYcAAZJABKmHAAfBkgAAAIoADxmHhZJAF8WDiYehsQAHfYA9QHfGBXeFd8VFd4V3hXd
BgB-9QLdFd31AVAAHU-2AA0GAgDKL-YBYwEfRw8WDQ4CADgVDQ4CAHP1AQ8TLwwvRAsgHwx_CxkP
fwsZD2YLDw4ACXE-DA8TLxEvFgA1jxMfIAA3bxEPDgA-DwxfEAAEAUAAIQw-DgAf3wsEHqH-GxYf
ET8bHxEvDwcQBwUAEAYFABAFBQASCi8HAQkAAjAHEgQqABE-DQAfC5MIHWH-GxAPEX9AAD8PET9y
AAEUAnIAEhJyABePBAA--xsIcQAdL-DwVARPTx8UsD4CAAoPugkef-8UEPCw-hA3AB8-EtAeAgAC
D0wAIT8Q0B4CAAIv-hKFAScPMgCrD2ABBwACAA9iASAv8NCXATcBAgAPTwAdivAdFEAPHw8UBABB
BA4PFKAJAgIAYQQNDiCeBLIJYG0EHSANHgYADg0AoA0EIA0ePQQNJA0QABFNdgtBEMQgBBUAIQRQ
FAAfMKEAHlQRFJAUAJUAIw4NAgAhBB7SCwaiAKceBK4EDh0ErQQtBAAbDQIAQx0kDQQCADk0DQQC
AG8AFJAU8BGeACAbwJwAETAwAQQCAIAgHgSeIB0EbQsAWh0EbR4NDQAiBA0OAFINJA0EPRAAMA0E
TUYAMcRABBMAIQRQEAAeIJoAD-gEcQJ1Ag8SAzg-EsAuAgACH-6bAR4e0J4ADysDK2YgLx9fFGAF
AFIfH28UYDAD-QNPFA8fYC5PFA5gDg0OXWANHl0JAEE9BA1gAgNHUJRQBA8AHzDZAU9mMF8ULx9g
BQBwbxQfH2AOT7ECYGAOTS5gXQkAO10eDQkAAX8CEWB_Aj9glFCNAijwACAE8HK1IAW-FgUQBR51
HgYAPwVcBQgAAgEeAJa_BSC1gB6ABg4CADYwDgYCADYwBg4CAC-wog8BCx825wJMD1kHH1-w0P8U
EM4COQ_QBx8UILcC8hQEUAQOHx8_BA4EQMQwDQ4NTgQOBA4EIA4dPgQOJA4gDQ4NbhAAMm4EHg4A
Gh4NABCdAwYUDgIASAQODTA2Bh-AUwUhn1AYAGhQ_BDwYDoAHUIwBE8U2QDRUAQPFAQ_Hx8OBCDE
ENMA8AJODQ4NIA4kDgQ_HQ4gBA4EbhAAQB4Ebh2iBQ4NAEEdBJ0gzwAEAgAYINYFT0AU8B3XAB6F
AdMQEw8bAw4CADYQAw4CAF8TEBMOAxwAFK-TIA8WBXANBTANBgAPL-ACYARQUTwPHCxg9hXwCAcM
DhwwHA4MRwwODDAMDgxnDA4wHhcOAgAyDEAOCQDwISAeIFcADjAeIDcwHkAsCBwQHkAHLAgcB0Ae
AAdcBwAeAB4QfBAeIAcMBwwHTHAXAAgAnwxwFxAXkBgQGCcSHvAFIAEsPxwBUAEcbgFAAQwOEQ4R
Bw4KACIHDgMAAQwAMhwHHAoA8A8PF0cNDgEwARwnDSceATAxDAcOMVABBwwHCAcOBwEKAP8lDggO
CB4HATABBxxuBwEQARcsXhcBAAEXfAEXARARBwEXAQcRBxFAAQABBwEHAZABHAEcAdwSIA8yAP8Y
-yiADxvQHoBPGA49QD0CbTC9MB0CbQIdIF0CXSDNMB0CTQItME0IXTA9Am1AXQItYH1wbZBNsC1Q
mQAfDzIA-0f-AAQEBAAfHAAOFx4XDgAeADwAGv8GCAgEgAcwByAHEAfwBAcQByAHMAeAQgAdkAgA
OAAIAAgwCAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA5fAUEL8YIA60DgAO1B5EPEQeJBw-HBwk
HiQMXQwkHhQMDVwNDBQIADIMPQwKABEdAgAICgDRJAwdHB0MJB4kHD0cJEUAn9QOAA60DiC_EL8A
Hw8yAP9LtxOfEFAOHA4sDgwOCAAjLgwQAAAIAAgaACo8LhgAIgweCgAxYA4MIgCPcB5MDoBe8BSI
AB75DxVVgAVWBXAFXxAFcAVeBXAFBj4GBXAFFh4WBXAFVgQAT4BV8CVMAR8PMgD-GfAIIcEQAYwP
ERsMDxwhDH8QHA8cARARLxCHCfIFMT8QEYABLgGgAR4PHAGQAR4NAZAPABANBQBfAbAx8ApwAB7w
HzYpwBoZECpQKhkAChlQSjlABhkKFgkGGhYwCQopChkKBhkGEGoJKgkWIBYKFgoJAK8wNhlGUIaQ
JvAGQQEfDzIA--------------------------------------9BUD0xMX19
MgUGBzAABx4AEgUgAAFCAANOAAUeAB8HAQQdkP8VAwwPEAwOHJcDMm8VDgoAUR0MHQwtCwCxHQ4M
HQwOLQ4cDi0KAFIMLRwtDAoANA5dDgoAPww9DAwAAgUiAAU2AAVKAAJfADMtDE1zACNtDAkAPwz9
A8UAHfEBHxQvFh8UhB4GHxYeRA8fJAkAYzQfHyQeLwgAkh8WBh4UDx8EHQsAIAQdCgBTLB4EHVQG
AGAGHB4EDWQHAFNUDRQeLAYAcBQNFB0UHhwxAAQJADANJB0aAAAtAD8sHoSqAB1VhB8UBh_sAGEE
Hx9UHi8IADEkHQQKABAdCQAmHAYJACAUDQkAMSweVAYAUQQdJA0UrQADtAADwQACJAAFNQATVAcA
AcUAT4QeLB6oAB3-IQYXFhcPFg0WHRYPEhYXFgcPFh0WHQYPEgcWFxYPFgYdFh0PEhcWFwYPFhYd
Fg0PEjAAEUB-Fn8SIgASDi0AACEAEA4sABAMHwAQDioAEAxNABAOWAAVDCkAHwwoAAEvfnxUBD1n
dA8UDg0EAgAmFA0QAAAKAP8F-xsUHxFfGx8RnxsfEW8bHxH-Gw1pBB3xFEBfFHAeDxU-Hy5AHg8V
Dj8fDxUODQ4gHg0ODT8fDg0ODQ4QBgBhPA0ODR4ACwAxDQ4cBwARPgYAIRwOBwARHgYAJw4UGgAl
FA4aAOAsDQ4sXkwODUwNDgAOPBYAUjwOEA4sWgBBDiAODAoAYQ0OHA5ALgoATx5wXkBQAR0DywAA
PwBRLkAODx9JAGMODS4gDiwLADEcDhDJAGAODTwADkwIAFFMLkwuTKIAIBRMtgA3HBQczgAsHB7n
ADUOAB4ZAAgaARIg1ABuDR5ALjwuvAAPWgdA4PATnVANfxANUA0OXxgOBwBCDD8eDAkAPwscCwoA
EhI7CAAQXAYAb34NUJ3wE4YAMBM3XQA-BxwHCgASHjeFAA89AU5g-xQBAA4gAgARPgYAMg4AHggA
PxD_AhkANh8OyABPAF8HUB8WBgceCQCxBgcOFh4WHmYHBh4DAAECAEUWHpYekQcRByoAMaYeFqkH
BSgAUlYeFh5WHAAGSQASphwAHwZIAAACKAA8Zh4WSQBfFg4mHobEAB32APUB3xgV3hXfFRXeFd4V
3QYAf-UC3RXd9QFQAB1P9gANBgIAyi-2AWMBH0cPFg0OAgA4FQ0OAgBz9QEPEy8ML0QLIB8MfgsZ
D38LGQ9mCw8OAAlxPwwPEy8RLxYANY8THyAAN28RDw4APw8MXxAABAFAACEMPw4AH98LBB6h-xsW
HxE-Gx8RLw8HEAcFABAGBQAQBQUAEgovBwEJAAIwBxIEKgARPw0AHwuTCB1h-xsQDxF-QAA-DxE-
cgABFAJyABIScgAXjwQAP-8bCHEAHS-w8FQET08fFLA_AgAKD7oJHn--FBDwsP4QNwAfPxLQHgIA
Ag9MACE-ENAeAgACL-4ShQEnDzIAqw9gAQcAAgAPYgEgL-DQlwE3AQIAD08AHYrwHRRADx8PFAQA
QQQODxSgCQICAGEEDQ4gngSyCWBtBB0gDR4GAA4NAKANBCANHj0EDSQNEAARTXYLQRDEIAQVACEE
UBQAHzChAB5UERSQFACVACMODQIAIQQe0gsGogCnHgSuBA4dBK0ELQQAGw0CAEMdJA0EAgA5NA0E
AgBvABSQFPARngAgG8CcABEwMAEEAgCAIB4EniAdBG0LAFodBG0eDQ0AIgQNDgBSDSQNBD0QADAN
BE1GADHEQAQTACEEUBAAHiCaAA-4BHECdQIPEgM4PxLALgIAAh-_mwEeHtCeAA8rAytmIC8fXxRg
BQBSHx9vFGAwA-0DTxQPH2AuTxQOYA4NDl1gDR5dCQBBPQQNYAIDR1CUUAQPAB8w2QFPZjBfFC8f
YAUAcG8UHx9gDk_xAmBgDk0uYF0JADtdHg0JAAF-AhFgfgI-YJRQjQIo8AAgBPBytSAFvxYFEAUe
dR4GAD8FXAUIAAIBHgCWvgUgtYAegAYOAgA2MA4GAgA2MAYOAgAv8KIPAQsfNucCTA9ZBx9f8ND-
FBDOAjkPkAcfFCC3AvIUBFAEDh8fPgQOBEDEMA0ODU4EDgQOBCAOHT4EDiQOIA0ODW4QADJuBB4O
ABoeDQAQnQMGFA4CAEgEDg0wNgYfwFMFIZ9QGABoUPgQ8GA6AB1CMARPFNkA0VAEDxQEPh8fDgQg
xBDTAPACTg0ODSAOJA4EPh0OIAQOBG4QAEAeBG4dogUODQBBHQSdIM8ABAIAGCDWBU9AFPAd1wAe
hQHTEBMPGwMOAgA2EAMOAgBfExATDgMcABSv0yAPFgVwDQUwDQYADy7wAt8SD2AEPlE8DxwsYPYV
8AgHDA4cMBwODEcMDgwwDA4MZwwOMB4XDgIAMgxADgkA8CEgHiBXAA4wHiA3MB5ALAgcEB5ABywI
HAdAHgAHXAcAHgAeEHwQHiAHDAcMB0xwFwAIAJ8McBcQF5AYEBgnEh7wBSABLD8cAVABHG4BQAEM
DhEOEQcOCgAiBw4DAAEMADIcBxwKAPAPDxdHDQ4BMAEcJw0nHgEwMQwHDjFQAQcMBwgHDgcBCgD-
JQ4IDggeBwEwAQccbgcBEAEXLF4XAQABF3wBFwEQEQcBFwEHEQcRQAEAAQcBBwGQARwBHAHcEiAP
MgD-GP8ogA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJtQF0CLWB9cG2Q
TbAtUJkAHw8yAP9H-wAEBAQAHxwADhceFw4AHgA8ABr-BggIBIAHMAcgBxAH8AQHEAcgBzAHgEIA
HZAIADgACAAIMAgGAIEQCAAYUBhQGAoABBYAPzgACAUBHTNQBQACADgQBQACALEVAAUPGQUOBQ4F
AAYAERAGAPAAXgkFABUOBR4JDgkKKQ4JDQlASQoZDhUA8QgZSgkaHgUADgUOGUoZLhUuCRoXCgke
CRIA4AkKCToJCh4AFVkaCQ4ZTQDwAR4JCjkuBQ4VAAUJDgkeCQprAAKCAGAJPgUOBTALAFYOGR4A
BaEAPwAFEBUCHw8yALPwFBC-GCAOtA4ADtQeRDxEHiQcPxwcJB4kDF0MJB4UDA1cDQwUCAAyDD0M
CgARHQIACAoA0SQMHRwdDCQeJBw9HCRFAI-UDgAOtA4gvlUBIA8yAP9LtxOfEFAOHA4sDgwOCAAj
LgwQAAAIAAgaACo8LhgAIgweCgAxYA4MIgCPcB5MDoBe8BSIAB75DxVVgAVWBXAFXxAFcAVeBXAF
Bj4GBXAFFh4WBXAFVgQAT4BV8CVMAR8PMgD-GfAIIcEQAYwPERsMDxwhDH8QHA8cARARLxAzCvIF
MT8QEYABLgGgAR4PHAGQAR4NAZAPABANBQBfAbAx8ApwAB7wHzYpwBoZECpQKhkAChlQSjlABhkK
FgkGGhYwCQopChkKBhkGEGoJKgkWIBYKFgoJAK8wNhlGUIaQJvAGQQEfDzIA----------------
----------------------9BUD0xMX19
:: gfx/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yOCAxNTowMDo0NSIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yOCAxOToyNjo0OSIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: map/0.map
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yOCAxNTowMDo0NSIscmV2aXNpb249MTM1MV1dbHo0AM8FAAAUQgAA8Ah7e2JtcD11c2VyZGF0
NC0yOCAxOToyNjo0OSIscmV2aXNpb249MTQwN11dbHo0AMoFAAARQgAA8Ah7e2JtcD11c2VyZGF0
YSgiaTE2IiwzMgMALyIwAQD-gy4xMAwADwEAoiozMAEAHjQUAAwBADU1ODABAD80ODABACsvNDAz
ACYfNnwABD8xMzCAAEoAAQA-MzYwXAATBAQADwEANQ9QACEvMzCAAG0PAQC6KjQ4CAEPBAMHDiAA
DwEANgSAAB8zYAEALzMwAQBOLzQ4GAAPDiQADwEAOQ5oAA8BAHIeM4ABD4AAYA8BAP_EBLQDDhAA
DwEAUwxwAAcQAB82xQhQLzYwAQDsB3ABDhAADwEAUAxwAAwQAA9oBB0IAQAISAAPgAQaD4AAQg8B
AP8XDiwLDwEAFC80MNABPx8zJQQYLzQwAQDU9hwiKSxoaWRkZW49ZmFsc2UsbmFtZT0ib2JqZWN0
cyIscGFuX3g9LTE2My4zAQABFwCVeT0tMTMzLjgzAQCiLHRpbGVfaD0xNgoAEHcKAI96b29tPTF9
LIQQCQ8BAP--------------------sPhBADr2ZvcmVncm91bmSHELIvMzkEAAMPAQAFLzM5BAAD
DwEAIW8zMjAwMGIEAAMvMzAwAAQTOQQAGmIMAC8zMIAAJB85BAABD4AAEBowDAAPgAAZBDQBIzNh
QAAiZDABABNjEAAAHAAWOCgADwABEgcwAA8EAAEPRAACL2QwAQAHB4wACTwADzAACQuUAAgIAB8z
gABZFzAMAA_AAD0XNQQACAEALzUwAQAKCYAAH2YEAAMmMTYEACcwZgQACDwAAwEAPzNlMAEAGgmA
AA8XFwUIgAAOAQAOPAAPAQAYD4AANh81BAAMBAEAGjUEAA8AAbYPgADsajJiMDAyYwQABAEALzJj
BAAEFmSAAAABAC8yOQQAAClhMAEAJjI4HAAIgAA-MzUwAQAeEzOgBi8zOQQACAsYAQiwAA_AAC0A
AQABXwATYRAFF2EEAAMQAC8yMIAAoyIyYuABD4AAEg8BAAgAQAcTMnUAHjItAA_AAAYqMzMsAg9M
AgIfYoAADycwY5AGH2MAAQgeZIAAHzMoAAANpAAPgAA0D9wCBQ_AAC4LAQAPgAAVLzAw-AgAHmGk
AA_AAEkJLAgXOUgBCAQCD4AANRc1BAAPgAARAywAD4AAFSMzZQQAHzABAAMO4AIPjAMLBBwDDDwA
DTQDCwQADgEAD4gBDy4zM6ADDxwCBQ0YAAcEAC8wMIAADwRYBg0MAwugAwGcARdhBAAfZBgAABZi
CAUuMGJ8AQ_AAAUNbAAOAQAPgABGDwEARw_AAI8mMDCoAg8EAEEPhxARR3NvbGmCEE8xMS44ghAA
LzYwghA0LzEwAQD-gB45DAAPAQChLzE4BAADDwEABS8xYQQAAw8BACEvMTgEAAcPAQAFLzFhBAAD
LzAwkAEfLzE4BAAHDwEABScxYgQAFjkEAC8wOAQADAcBAC8xYwQAAyYwZgQAJjFjBAAJAQAfOAQA
JAcBAC8xYwQAGwkBAB84BAAkBwEALzFjBAAbCAEALzE4BAAjCAEALzFjBAAbCAEALzE4BAAjCAEA
LzFjBAAbCAEALzE4BAAjCAEALzFjBAAbCAEALzE4BAAjCAEALzFjBAAbCAEALzE4BAAjDwEAEhdl
BAAPAQAELzFiBAAABAgEH2IEAAcPAQASF2UEAA8BAAUfOAQAJA8BABEXZQQADwEABR84BAAkDwEA
ERdlBAAPAQAFHzgEACQXMFwADwQAAQQBAC9lMAEACx44BAANTg0WYRwABQQABFwADwQABQQBAC9l
MAEACx44BAAfM6ILARs4BAAEXAAPBAAFBAEAL2UwAQALHziAAEQMBAAPAQAFHziAAOsuMWJ4BA_A
AAEEHAAJgAQfZQQAGA8BAA0fOAQAFA8BAAEvZTABAC4vMTgEABMPgAD-Ri8wOAQAFB9lBAAgDwEA
ER84BAAUH2UEAB4PCSGSSmJhY2sJIWQxMzcuMTYBABU3hhAvMTKGEBFQbT0xfX0=
AP8XDiwLDwEAFC80MNABPx8zJQQYLzQwAQDU9hsiKSxoaWRkZW49ZmFsc2UsbmFtZT0ib2JqZWN0
cyIscGFuX3g9LTMxLjMBAAEWAJV5PS0xMTMuODMBAKIsdGlsZV9oPTE2CgAQdwoAj3pvb209MX0s
gxD-bFM5MDAwYggADwEA------------------_MD4MQA69mb3JlZ3JvdW5khhCxLzM5BAADDwEA
BS8zOQQAAw8BACEjMzL_Dw8EAAAvMzAwAAQTOQQAGmIMAC8zMIAAJAREABcwDAAfOYAAEBowDAAP
gAAZBDQBIzNhQAAiZDABABNjEAAAHAAWOCgADwABEgcwAA8EAAEPRAACL2QwAQAHB4wACTwADzAA
CQuUAAgIAB8zgABZFzAMAA_AAD0XNQQACAEALzUwAQAKCYAAH2YEAAMmMTYEACcwZgQACDwAAwEA
PzNlMAEAGgmAAA8VFwUIgAAOAQAOPAAPAQAYD4AANh81BAAMBAEAGjUEAA8AAbYPgADsajJiMDAy
YwQABAEALzJjBAAEFmSAAAABAC8yOQQAAClhMAEAJjI4HAAIgAA-MzUwAQAeEzOgBi8zOQQACAsY
AQiwAA_AAC0AAQABXwATYRAFF2EEAAMQAC8yMIAAoyIyYuABD4AAEg8BAAgAQAcTMnUAHjItAA_A
AAYqMzMsAg9MAgIfYoAADycwY5AGH2MAAQgeZIAAHzMoAAANpAAPgAA0D9wCBQ_AAC4LAQAPgAAV
LzAw-AgAHmGkAA_AAEkJLAgXOUgBCAQCD4AANRc1BAAPgAARAywAD4AAFSMzZQQAHzABAAMO4AIP
jAMLBBwDDDwADTQDCwQADgEAD4gBDy4zM6ADDxwCBQ0YAAcEAC8wMIAADwRYBg0MAwugAwGcARdh
BAAfZBgAABZiCAUuMGJ8AQ_AAAUNbAAOAQAPgABGDwEARw_AAI8mMDCoAg8EAEEPhhART3NvbGmB
EFcvMTABAP_AHjkMAA8BAKEvMTgEAAMPAQAFLzFhBAADDwEAIS8xOAQABw8BAAUvMWEEAAMvMDCQ
AR8vMTgEAAcPAQAFJzFiBAAWOQQALzA4BAAMBwEALzFjBAADJjBmBAAmMWMEAAkBAB84BAAkBwEA
LzFjBAAbCQEAHzgEACQHAQAvMWMEABsIAQAvMTgEACMIAQAvMWMEABsIAQAvMTgEACMIAQAvMWME
ABsIAQAvMTgEACMIAQAvMWMEABsIAQAvMTgEACMIAQAvMWMEABsIAQAvMTgEACMPAQASF2UEAA8B
AAQvMWIEAAAECAQfYgQABw8BABIXZQQADwEABR84BAAkDwEAERdlBAAPAQAFHzgEACQPAQARF2UE
AA8BAAUfOAQAJBcwXAAPBAABBAEAL2UwAQALHjgEAA1NDRZhHAAFBAAEXAAPBAAFBAEAL2UwAQAL
HjgEAB8zoQsBGzgEAARcAA8EAAUEAQAvZTABAAsfOIAARAwEAA8BAAUfOIAA6y4xYngED4AAAQQc
AAmABB9lBAAYDwEADR84BAAUDwEAAS9lMAEALi8xOAQAEw_AAP9GLzA4BAAUH2UEACAPAQARHzgE
ABQfZQQAHg8HIZJKYmFjawchZDEzNy4xNgEAFjeGEB8yhhARUG09MX19
:: map/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yOCAxNTowMDo0NSIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yOCAxOToyNjo0OSIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: sfx/0.sfx
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
NC0yOCAxNTowMDo0NSIscmV2aXNpb249MTA1MV1dbHo0AEYBAABmCAAA8CdweHUAAygAAAMABA9A
NC0yOCAxOToyNjo0OSIscmV2aXNpb249MTA5OF1dbHo0AEYBAABmCAAA8CdweHUAAygAAAMABA9A
EAIOAAGgASACoA4ADxAADfDKAQIDBAUGBwAP-5AICQoLDwwPDQ8ODw8QAPAADQ8RDxIPEw8UDxUP
Fg8XEwDxAQ8YDxkPGg8bDxwPHQ8eDx8UAPEAIA8hDyIPIw8kDyUPJg8nFADxACgPKQ8qDysPLA8t
Dy4PLxQA8QAwDzEPMg8zDzQPNQ82DzcUAP8FOA85DzoPOw88Dz0PPg8-AA--8P8BAOvyJ1oBEAYP
@ -111,14 +114,14 @@ Gy-wADAA--_CH-8BAMzxHegPQAANQA8XAAsaCAYIEAIDEAUABgAIAEkXACYICVD--wnxF-4J-Bf_
CfBwKwBf-rDwcAQIAP-cH-8BAJdQ-----x8=
:: sfx/.info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
NC0yOCAxNTowMDo0NSIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
NC0yOCAxOToyNjo0OSIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
MG5pbA==
:: main.lua
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-28 15:00:45",revision=1338]]
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-28 19:26:49",revision=1405]]
include("/cirnofarm/src/game.lua")
:: .info.pod
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
NC0yOCAxNTowMDo0NSIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
NC0yOCAxOToyNjo0OSIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9

View file

@ -1,12 +1,27 @@
local Actor = require(make_path("actor2"))
local Box = Actor:new()
Box.spriteIndex = 4
function Box:new(x,y)
local b = Actor:new(x,y)
b.life = 8
b.shootable = true
b.spriteIndex = 4
return setmetatable(b, {__index=self})
end
--Box.spriteIndex = 4
function Box:update()
end
function Box:destroy()
del(actors,self)
end
--function Barrel:draw()
-- spr(self.spriteIndex,self.x,self.y)
--end

View file

@ -20,7 +20,7 @@ Cirno.weapon=nil
function Cirno:new(x,y)
local obj = Actor:new(x,y)
local weapon = weapons_manager.make_weapon(weapons_manager.get_weapons().ICE_BLASTER)
local weapon = weapons_manager.make_weapon(weapons_list.ICE_BLASTER)
obj.weapon = weapon

View file

@ -61,6 +61,65 @@ local Box = require(make_path("box"))
include(make_path("pgui" .. ".lua"))
particles_list = {
BLINK={
life=4,
spriteIndex=81
},
EXPLOSION={
life=8,
spriteIndex=83
}
}
bullets_list = {
BASIC={
spriteIndex=80,
damage=1,
speed=2,
life=100,
radius=4,
particle=particles_list.BLINK
}
}
weapons_list = {
ICE_BLASTER={
name = "Ice Blaster",
rate_of_fire = 8,
bullet=bullets_list.BASIC,
spriteIndex=104,
--shoot=function(self,x,y,dir_x,dir_y)
-- create_bullet(self.bullet, x, y, dir_x, dir_y)
--end
},
SPAGHETTI={
name = "Spaghetti",
rate_of_fire = 80,
bullet=bullets_list.BASIC,
spriteIndex=105,
}
}
LAYERS = {
{index=4, name="background", render=true, render_objects=false, spawn_objects=false},
{index=3, name="solid", render=true, render_objects=true, spawn_objects=false},
{index=2, name="foreground", render=true, render_objects=false, spawn_objects=false},
{index=1, name="objects", render=false, render_objects=false, spawn_objects=true}
}
actors_db = {
{name="teleporter",sprite=88,actor=nil},
{name="barrel",sprite=3,actor=Barrel},
{name="strawberry",sprite=72,actor=Strawberry},
{name="player",sprite=65,actor=nil},
{name="box",sprite=4,actor=Box},
{name="alarm",sprite=19,actor=nil},
{name="fan",sprite=16,actor=nil}
}
tile_width = 16
tile_height = 16
@ -101,6 +160,7 @@ function _update()
{"text_box",{text=string.format("Actors: %d", count(actors)),margin=2,stroke=true,active=false,hover=false}},
{"text_box",{text=string.format("%.4f %dfps",stat(1),stat(7)),margin=2,stroke=true,active=false,hover=false}},
{"text_box",{text=string.format("Bullets: %d", count(bullets)),margin=2,stroke=true,active=false,hover=false}},
{"text_box",{text=string.format("Particles: %d", count(particles)),margin=2,stroke=true,active=false,hover=false}},
{"text_box",{text=string.format("Weapon: %s", cirnoInstance.weapon.data.name),margin=2,stroke=true,active=false,hover=false}},
{"text_box",{text=string.format("Weapon timer: %d", cirnoInstance.weapon.timer),margin=2,stroke=true,active=false,hover=false}},
{"sprite_box",{sprite=cirnoInstance.weapon.data.spriteIndex,margin=2,stroke=true,active=false,hover=false}},
@ -109,22 +169,7 @@ function _update()
--pgui:component("text_box",{text=string.format("Actors: %d", count(actors)),margin=2,stroke=true,active=false,hover=false})
end
LAYERS = {
{index=4, name="background", render=true, render_objects=false, spawn_objects=false},
{index=3, name="solid", render=true, render_objects=true, spawn_objects=false},
{index=2, name="foreground", render=true, render_objects=false, spawn_objects=false},
{index=1, name="objects", render=false, render_objects=false, spawn_objects=true}
}
actors_db = {
{name="teleporter",sprite=88,actor=nil},
{name="barrel",sprite=3,actor=Barrel},
{name="strawberry",sprite=72,actor=Strawberry},
{name="player",sprite=65,actor=nil},
{name="box",sprite=4,actor=Box},
{name="alarm",sprite=19,actor=nil},
{name="fan",sprite=16,actor=nil}
}
actors = {}
bullets = {}
@ -165,6 +210,7 @@ include(make_path("error_explorer") .. ".lua")
function spawn_objects()
-- Map width and height, TODO: unhardcode
local width = 32
local height = 32
@ -177,6 +223,7 @@ function spawn_objects()
if (a) then
local ai = a:new(x*tile_width,y*tile_height)
--local ai = Barrel:new(x*tile_width,y*tile_height)
--error("ads")
add(actors,ai)
end
@ -256,7 +303,7 @@ function check_collisions()
end
end
end
end
end
end

View file

@ -1,6 +1,6 @@
--local player = require(make_path("cirno"))
M = {}
local M = {}
local tile_width = 16
local tile_height = 16

31
src/particle.lua Normal file
View file

@ -0,0 +1,31 @@
local Actor = require(make_path("actor2"))
Particle = Actor:new()
function Particle:new(x,y,type)
local p = Actor:new(x,y)
p.life = type.life
p.spriteIndex = type.spriteIndex
p.shootable = false
return setmetatable(p, {__index=self})
end
--Particle.life=4
--Particle.spriteIndex=81
function Particle:update()
self.life-=1
if self.life<=0 then
del(particles,self)
end
end
local M = {}
function M:create(x,y,type)
return Particle:new(x,y,type)
end
return M

0
src/typeLists.lua Normal file
View file

View file

@ -1,38 +1,10 @@
--[[pod_format="raw",created="2024-04-24 07:17:14",modified="2024-04-24 20:33:05",revision=11]]
local map_manager = require(make_path("map"))
local Actor = require(make_path("actor2"))
local Particle = require(make_path("particle"))
--local actor = require("actor2")
M = {}
local bullets_list = {
BASIC={
spriteIndex=80,
damage=1,
speed=2,
life=100,
radius=2
}
}
local weapons_list = {
ICE_BLASTER={
name = "Ice Blaster",
rate_of_fire = 8,
bullet=bullets_list.BASIC,
spriteIndex=104,
--shoot=function(self,x,y,dir_x,dir_y)
-- create_bullet(self.bullet, x, y, dir_x, dir_y)
--end
},
SPAGHETTI={
name = "Spaghetti",
rate_of_fire = 80,
bullet=bullets_list.BASIC,
spriteIndex=105,
}
}
function shoot(weapon, x, y, dir_x, dir_y)
-- handle cooldown
create_bullet(weapon.bullet, x, y, dir_x, dir_y)
@ -64,34 +36,6 @@ function Weapon:update()
end
end
-- Particle
Particle = Actor:new()
function Particle:new(x,y)
local p = Actor:new(x,y)
p.life=4
p.spriteIndex=81
p.shootable = false
return setmetatable(p, {__index=self})
end
--Particle.life=4
--Particle.spriteIndex=81
function Particle:update()
self.life-=1
if self.life<=0 then
del(particles,self)
end
end
-- function Particle:draw()
-- spr(self.spriteIndex,self.x,self.y)
-- end
Bullet = Actor:new()
--function Bullet:new()
--
@ -109,6 +53,7 @@ function Bullet:new(bullet_data,x,y,dir_x,dir_y)
obj.life = bullet_data.life
obj.speed = bullet_data.speed
obj.radius = bullet_data.radius
obj.particle = bullet_data.particle
obj.dx = dir_x * obj.speed
obj.dy = dir_y * obj.speed
@ -121,7 +66,7 @@ end
function Bullet:destroy()
-- Create particle
local p = Particle:new(self.x, self.y)
local p = Particle:create(self.x, self.y,self.particle)
add(particles, p)
@ -176,14 +121,6 @@ end
-- return shoot(weapon, new_x,new_y,dir_x,dir_y)
--end
function M.get_weapons()
return weapons_list
end
function M.get_bullets()
return bullets_list
end
function M.init()
end