* match a few
* delete ASM
* Almost done
* One reg swap left
* GlobalCtx2 YEP
* Start object SKJ
* Start some documentation
* Big doc pass
* Name the first batch of functions
* Done
* fix some issues real quick
* lets try this again
* remove left over doc tools and add 3 textures
* Finish object_skj docs
* PR fixes
* PR fixes
* Delete BuildInfo.ha
* PR fixes (Roman)
* PR fixes (Roman)
* First pass
* Darkmeiro decompilation
Bg_Gnd_Darkmeiro decompiled, matched, and documented.
* give this a shot
* fix conflict
* one more try
* more matching fun
* fun with bongo
* clean this up later
* found the matching versions
* diff.py has escaped?
* now with more docs
* Now with floor and more docs
* one more thing
* incremental progress
* It's Bongo time
* one little thing
* merge ZAP
* update
* camera
* gfx now in their own file
* now with more object decomp
* name animations
* now shiftable
* missed some. also DECR
* opd merge
* start xml
* now with xml asset extraction
* format
* cleanup
* removed union
Co-authored-by: Kelebek1 <eeeedddccc@hotmail.co.uk>
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
* ovl_Boss_Goma OK, except func_80917D98
* ovl_Boss_Goma OK and documented
* Minor cleanup: shorten enums, use named constants...
* Floats with .0f, less useless static usage, details on oversight about spawning child gohmas, cleanup...
* More documentation, hopefully less weird about documenting setups and actions
* fix fhg_fire
* remove warnings
* formatting things
* newlines
* review
Co-authored-by: Fig02 <fig02srl@gmail.com>
* matches
* more matches
* progress?
* it's time
* so close
* organize declarations
* docs
* more fixes
* more fixes
* fix stage 1
* more fixes
* first try
* demo ids in decimal
* final cleanup
* one more thing
* fixes
* more cleanup
* onepointcs
* OnePointCutscene
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
* Darkmeiro decompilation
Bg_Gnd_Darkmeiro decompiled, matched, and documented.
* give this a shot
* fix conflict
* one more try
* It's Phantom Ganon time
* Fhg_Fire matched
* small touch up
* more documentation
* starting naming fire
* renaming
* cleanup
* hooray for new names
* merge
* first pass
* camera status
* bgcheck
* object 1
* object 2
* .s
* .s
* fig's comments
* implementing zel's suggestions and a few other things
* the work begins
* work continues
* docs, shifts, cleanup
* cleanup
* texture names
* addressing the rest of the notes
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
* Decompile and document En_Clear_Tag
* Adds a define for setting the total count of ClearTag particles.
* Fixes swap in particle effect struct member names.
Additionally, implements the DECR macro where available.
Additionally, implements the CLAMP_MIN macro.
Additionally, adds more comments inside of functions explaining how the Arwing works.
* Reformats z_en_clear_tag.c after recent fixes.
* Removes not OK DECR and CLAMP_MIN macros.
I don't know why they built locally OK for me. May have had a stale build.
* Added static to data declarations.
Additionally added white spacing between data definitions.
* Various syling fixes in EnClearTag
Fixes inconsistent usage of particle/effect. They're Effect is the better name, so I went with that.
Fixed a naming issue in CalculateFloorTangent.
Adds s prefix to all the static variables.
Renames clearTagParticlesBuffer to sClearTagEffects
Consistent capitalization in comments.
Adds more descriptive comments to function level comments that didn't say a lot already.
Renamed gameplay.particleEffects to gameplay.specialEffects.
Renames cameraNumber to cameraId.
Fixed capitalization in display list variable names.
* Always capitalize the A in arwing.
* Fixes issue with overzealous replacement of arwing -> Arwing
* Renames arwing display lists to include the g prefix.
* Renames effect seed -> random
* Removes unnecessary decrement timer comments.
* Updates Arwing comments to detail why it's important that the roll is updated to zero.
* Updates stack variable names in EnClearTag_Update to be more consistent with each other.
* Updates Arwing crashing documentation.
* Further update documentation on arwing crashing.
* Even further updates to Arwing crashing docs.
* Fixes issue of missing newline in En_Clear_Tag.xml
* targetDirection reset now has a chained assignment
* Rotation angle to hex
* Fixes rotation hex and identifies float.
* Updates arwing fire check.
* Arwing cutscene timer is multiplied by 128 rather than shifting 7
* Updates scaledCrashingTimer assignment to be more consistent.
* Updates max scale to multiply by 2
* Gives name to the work buffer indices.
Additionally, makes enum names more consistent.
* Removes unnecessary globalCtx2 in EnClearTag_CreateFlashEffect
* Runs format.sh after recent changes.
* Updated path of ClearTag assets.
* Clear tag now uses Arwing in the display list name for all effects.
* Updates work buffer to expand and contract as new enums are added.
* Uses c99 defines in my c89
* Updates the unknown 8 bytes in en_clear_tag
* review
Co-authored-by: fig02 <fig02srl@gmail.com>
* Shift to new branch
* object_jj decomped
* docs
* Documented blinking, various other things
* more naming
* Most stuff in the object named
* implement eye enums
* delete asm
* Changes from Fig's review
* Apply suggestions from code review
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
* Init
Signed-off-by: angie <angheloalf95@gmail.com>
* destroy and non_matching update
Signed-off-by: angie <angheloalf95@gmail.com>
* declare externs to data
Signed-off-by: angie <angheloalf95@gmail.com>
* nonmatching draw
Signed-off-by: angie <angheloalf95@gmail.com>
* everything is a disaster
Signed-off-by: angie <angheloalf95@gmail.com>
* import bss
Signed-off-by: angie <angheloalf95@gmail.com>
* first step to extract data
Signed-off-by: angie <angheloalf95@gmail.com>
* import data
Signed-off-by: angie <angheloalf95@gmail.com>
* func_80A89860
Signed-off-by: angie <angheloalf95@gmail.com>
* draw
Signed-off-by: angie <angheloalf95@gmail.com>
* func_80A89A6C is crap
Signed-off-by: angie <angheloalf95@gmail.com>
* EnJsjutan_Update
Signed-off-by: angie <angheloalf95@gmail.com>
* change some hexs into decs
Signed-off-by: angie <angheloalf95@gmail.com>
* convert hexs of D_80A8AA98 into decimals and run format.sh
Signed-off-by: angie <angheloalf95@gmail.com>
* move data to its own file
Signed-off-by: angie <angheloalf95@gmail.com>
* this function is nightmare
Signed-off-by: angie <angheloalf95@gmail.com>
* i'm really trying
Signed-off-by: angie <angheloalf95@gmail.com>
* i think i am finally doing it
Signed-off-by: angie <angheloalf95@gmail.com>
* move the temps to where they are used
Signed-off-by: angie <angheloalf95@gmail.com>
* rename distance
Signed-off-by: Angie <angheloalf95@gmail.com>
* rename a few variables
Signed-off-by: Angie <angheloalf95@gmail.com>
* unclamp stuff :s
Signed-off-by: Angie <angheloalf95@gmail.com>
* i tried to see if i'm going better that older way
Signed-off-by: Angie <angheloalf95@gmail.com>
* moving stuff around
Signed-off-by: Angie <angheloalf95@gmail.com>
* this is the third try
Signed-off-by: angie <angheloalf95@gmail.com>
* changing bit by bit
Signed-off-by: angie <angheloalf95@gmail.com>
* step by step
Signed-off-by: angie <angheloalf95@gmail.com>
* more stuff
Signed-off-by: angie <angheloalf95@gmail.com>
* slow
Signed-off-by: angie <angheloalf95@gmail.com>
* a few small changes
Signed-off-by: angie <angheloalf95@gmail.com>
* go back to second try
Signed-off-by: Angie <angheloalf95@gmail.com>
* changing a s8 to u8 made a bigger difference than expected
Signed-off-by: Angie <angheloalf95@gmail.com>
* i am slowly doing it
Signed-off-by: Angie <angheloalf95@gmail.com>
* some problems are so dumb
Signed-off-by: Angie <angheloalf95@gmail.com>
* it is improving slowly again
Signed-off-by: Angie <angheloalf95@gmail.com>
* erase the old tries
Signed-off-by: Angie <angheloalf95@gmail.com>
* remove four variables
Signed-off-by: Angie <angheloalf95@gmail.com>
* fix the missing instructions at the end
Signed-off-by: angie <angheloalf95@gmail.com>
* theres only regalloc problems left
Signed-off-by: angie <angheloalf95@gmail.com>
* fix stack
Signed-off-by: angie <angheloalf95@gmail.com>
* add ifdef non_matching
Signed-off-by: Angie <angheloalf95@gmail.com>
* i'm getting desesperate
Signed-off-by: Angie <angheloalf95@gmail.com>
* Remove unnecessary casts
Signed-off-by: Angie <angheloalf95@gmail.com>
* random stuff that improves codegen
Signed-off-by: angie <angheloalf95@gmail.com>
* dumb is dumb
Signed-off-by: angie <angheloalf95@gmail.com>
* erase stuff
Signed-off-by: angie <angheloalf95@gmail.com>
* add some comments
Signed-off-by: Angie <angheloalf95@gmail.com>
* use bomb_explosion param and add some comments
Signed-off-by: angie <angheloalf95@gmail.com>
* add a few comments in about stuff
Signed-off-by: Angie <angheloalf95@gmail.com>
* extract carpet's texture instead of hardcode it
Signed-off-by: Angie <angheloalf95@gmail.com>
* set segment 128 in the xml
Signed-off-by: Angie <angheloalf95@gmail.com>
* Add baseaddress, which fixes dlist in xml
Signed-off-by: Angie <angheloalf95@gmail.com>
* fix the second dlist
Signed-off-by: Angie <angheloalf95@gmail.com>
* compiler complain that the symbol doesn't exists
Signed-off-by: angie <angheloalf95@gmail.com>
* last cleanup
Signed-off-by: angie <angheloalf95@gmail.com>
* format and delete unused asm
Signed-off-by: angie <angheloalf95@gmail.com>
* Cleanup and add a few comments
Signed-off-by: Angie <angheloalf95@gmail.com>
* add non matching to spec
Signed-off-by: angie <angheloalf95@gmail.com>
* update xml and add a note to future people
Signed-off-by: angie <angheloalf95@gmail.com>
* Finally remove z_en_jsjutan_data.c
Signed-off-by: angie <angheloalf95@gmail.com>
* Rename extracted variables
Signed-off-by: angie <angheloalf95@gmail.com>
* Update src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.h
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
* Update src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
* Commit Before Draw Decomp
* Closer EnMu_Draw
* Matched draw function
* EnMu Matching with OK
* Removed ASM
* EnMu OK
* Implemented pull request changes as of 2020/03/16
* Reverted header
* Split increment and switched 0s to NULLs
* Init done
* slight tweak
* Destroy done
* func_80995020
* func_809951C4 done
* started func_80995A84
* func_80995A84, func_80995284, func_809952B8 done
* started the mess that is func_80995368
* most functions done except for 3 trouble cases
* func_80995368 done
* func_809958E4 done
* fully matching. Documentation and cleanup to come
* fixed fake matches
* documentation progress
* More documentation
* getting close on tidying up everything
* Finalised documentation and made some comments and name changes in player and other door files
* formatting and final touches to comments
* pr stuff
* merge master
* merge
* format
* remove unused asm after merge
* review
* \n
Co-authored-by: fig02 <fig02srl@gmail.com>
* first two funcs done
* fixing struct var name due to external use
* func_80A07CA4 done
* started EnEncount2_Update
* EnEncount2_Update done
* Encount2 done!
* EnFireRock_Init done (but will only match once initvars are uncommented
* progress
* 4 funcs left
* Fully matching
* minor formatting
* renames
* change structs back to normal
* formatting
* removing unused comments
* even more formatting stuff
* removed unused asm
* pr stuff
* pr stuff
* added newline at end of file
* some merge suggestions
* more pr stuff
* review
Co-authored-by: fig02 <fig02srl@gmail.com>
* DemoDu_Init and externed data
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* functions called by init
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* DemoDu_Destroy
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* DemoDu_Update
Signed-off-by: angie <angheloalf95@gmail.com>
* DemoDu_Draw
Signed-off-by: angie <angheloalf95@gmail.com>
* func_80969FD0
Signed-off-by: angie <angheloalf95@gmail.com>
* func_8096B840
Signed-off-by: angie <angheloalf95@gmail.com>
* two non matching functions
Signed-off-by: angie <angheloalf95@gmail.com>
* import data
Signed-off-by: angie <angheloalf95@gmail.com>
* func_8096BF60
Signed-off-by: angie <angheloalf95@gmail.com>
* func_8096BF54
Signed-off-by: angie <angheloalf95@gmail.com>
* about half of the updates functions
Signed-off-by: angie <angheloalf95@gmail.com>
* almost the other half of update functions
Signed-off-by: angie <angheloalf95@gmail.com>
* the rest of the updates functions
Signed-off-by: angie <angheloalf95@gmail.com>
* DemoDu_UpdateEyes
Signed-off-by: angie <angheloalf95@gmail.com>
* bunch of functions
Signed-off-by: angie <angheloalf95@gmail.com>
* func_8096A970
Signed-off-by: angie <angheloalf95@gmail.com>
* Another chunk of functions
Signed-off-by: angie <angheloalf95@gmail.com>
* More functions and a bit of renaming
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* More functions
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* a bit of renaming and five more functions
Signed-off-by: angie <angheloalf95@gmail.com>
* nonmatching function still not matching
Signed-off-by: angie <angheloalf95@gmail.com>
* func_8096B57C and a bit of renaming
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* func_8096A528
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* move static variables around
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* another bit of renaming
Signed-off-by: angie <angheloalf95@gmail.com>
* REG
Signed-off-by: angie <angheloalf95@gmail.com>
* Document the functions that give the medallion to player
Signed-off-by: angie <angheloalf95@gmail.com>
* More function renaming
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* more function renaming
Signed-off-by: angie <angheloalf95@gmail.com>
* firemedallion and credits
Signed-off-by: angie <angheloalf95@gmail.com>
* rename some variables in a nonmatching function
Signed-off-by: angie <angheloalf95@gmail.com>
* i hate this function, and it is so dumb.
it took me days to figure it out, the error was so stupid
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* rename mouthtextures and some variables
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* Rename almost all the missing functions
Signed-off-by: angie <angheloalf95@gmail.com>
* whoops, i forgot to run format.sh
Signed-off-by: angie <angheloalf95@gmail.com>
* Renaming the references to the cutscene at the chamber of the sages after killing ganon
Thanks to @tharo
Signed-off-by: angie <angheloalf95@gmail.com>
* Many of the changes requested by @petrie911
Signed-off-by: angie <angheloalf95@gmail.com>
* Inline the assignments at DemoDu_CsGoronsRuby_SpawnDustWhenHittingLink
Signed-off-by: angie <angheloalf95@gmail.com>
* change wrong type
Signed-off-by: angie <angheloalf95@gmail.com>
* changes requested by @fig02
Signed-off-by: angie <angheloalf95@gmail.com>
* run format
Signed-off-by: angie <angheloalf95@gmail.com>
* remove s prefix in dustPosOffsets
Signed-off-by: angie <angheloalf95@gmail.com>
* a bunch of functions
Signed-off-by: angie <angheloalf95@gmail.com>
* another bunch of functions
Signed-off-by: angie <angheloalf95@gmail.com>
* add dummies to func_8097911C to match it
Signed-off-by: angie <angheloalf95@gmail.com>
* fix some functions declarations
Signed-off-by: angie <angheloalf95@gmail.com>
* Add functions of the array used by the update function
Signed-off-by: angie <angheloalf95@gmail.com>
* add functions used by draw
Signed-off-by: angie <angheloalf95@gmail.com>
* draw and update functions
Signed-off-by: angie <angheloalf95@gmail.com>
* DemoGj_Init
Signed-off-by: angie <angheloalf95@gmail.com>
* fix some functions declarations
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* 9 small functions
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* Some unmatched functions and 12 small matched functions
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* another 7 small functions
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* add data
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* small types fixes
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* six more functions
Signed-off-by: angie <angheloalf95@gmail.com>
* func_80978C20
Signed-off-by: angie <angheloalf95@gmail.com>
* func_8097BA48
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* five repeated functions
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* Array of cylinders and two other functions
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* seven equals and problematic functions
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* func_80978F60 and func_80979860
Signed-off-by: angie <angheloalf95@gmail.com>
* func_8097923C doesn't want to match :c
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* three not matching functions
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* func_80978AFC
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* three more
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* DemoGj_FindGanon
Signed-off-by: angie <angheloalf95@gmail.com>
* func_809797E4
Signed-off-by: angie <angheloalf95@gmail.com>
* func_80978B90
Signed-off-by: angie <angheloalf95@gmail.com>
* last non matching function
Signed-off-by: angie <angheloalf95@gmail.com>
* erase reloc
Signed-off-by: angie <angheloalf95@gmail.com>
* a bit of renaming
Signed-off-by: angie <angheloalf95@gmail.com>
* another chunk of renaming
Signed-off-by: angie <angheloalf95@gmail.com>
* fix reg macros and a few comments
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* vt, arrayfuncs renaming and another bit of renaming
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* More renaming
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* i'm hating this actor
Signed-off-by: angie <angheloalf95@gmail.com>
* format
Signed-off-by: angie <angheloalf95@gmail.com>
* Changes asked by @shawlucas
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* swap globalCtx and globalCtx2
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* Move static variables nearer to where they are used and general cleanup
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* A bunch of changes
Signed-off-by: angie <angheloalf95@gmail.com>
* run format.sh
Signed-off-by: angie <angheloalf95@gmail.com>
* Forgot to change updateMode
Signed-off-by: Angie <angheloalf95@gmail.com>
* Rename the references to object_gj
Signed-off-by: Angie <angheloalf95@gmail.com>
* Rename some functions
Signed-off-by: Angie <angheloalf95@gmail.com>
* document the actor params, a few members and rename some draw functions
Signed-off-by: Angie <angheloalf95@gmail.com>
* Rename DemoGj_DrawRubbleDisplayList into DemoGj_DrawRotated
Signed-off-by: angie <angheloalf95@gmail.com>
* The first type is the the rubble that is around the fight's arena
Signed-off-by: angie <angheloalf95@gmail.com>
* rename the enums
Signed-off-by: angie <angheloalf95@gmail.com>
* Document the value read from the Ganon instance and rename a few functions from that
Signed-off-by: Angie <angheloalf95@gmail.com>
* rename init and draw functions
Signed-off-by: Angie <angheloalf95@gmail.com>
* rename smoke spawner functions
Signed-off-by: angie <angheloalf95@gmail.com>
* run format.sh
Signed-off-by: angie <angheloalf95@gmail.com>
* fix merge issues
Signed-off-by: Angie <angheloalf95@gmail.com>
* Getting started
* matched tsubo_init
* matched func_80BA0DF4 and func_80BA100C
* matched func_80BA1294, with progress func_80BA15BC
* matched final func, deleted asm, some documenting
* Fixing some control flow, and names
* Fixing suggested changes (some still remain)
* adding the dangeon_keep gfx
* init done
* Everything done except for draw
* matching
* Tidied for pr
* merge master into en_ba
* run format.sh
* fixing merge mistakes
* how many different ways can I screw up a merge challenge
* some pr comments
* breathing new life into these skeletons
* StalZone Progress StalZone
* another match
* matched override
* some progress
* one down, one to go
* naming and prepping for pr
* removing asm and prepping for PR
* fixing damage table and asm issues
* hopefully this fixes it (thank you louis)
* fixing some suggested changes
* inlining data into EnSkb_SpawnDebris
* Fixing suggestions and adding a note
* fixing the asm and function name
* fix
* whoops
Co-authored-by: Fig02 <fig02srl@gmail.com>
* init, func_809B1120, and func_809B11C0 OK
Also migrate data to c
* Match Destroy, func_809B142C, func_809B1524, func_809B15CC
Start on func_809B16AC, but float register diffs :(
* Everything OK but func_809B16AC
and what a devil it is...
* Work on func_809B16AC
What an ugly function
* Do some documentation
* More documentation
* Run formatter
* Rename a few things
* Address PR comments
* Missed a couple angle macro opportunities
* Update src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
Co-authored-by: mzxrules <mzxrules@gmail.com>
* Anubice OK
* Deleted the wrong part of the spec
* A curtain was missed
* Forgot a comment
I changed the declaration but not the reference :I
* More PR comments
Co-authored-by: mzxrules <mzxrules@gmail.com>
* Fixing mkldscript.c for mac
* 1 to go
* merge update
* almost
* small update
* updating API with master
* NON_MATCHING
* names of vars
* almost matching
Signed-off-by: angie <angheloalf95@gmail.com>
* BgHidanHrock_Init matching
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* renames
* format
* PR suggestions
Co-authored-by: angie <angheloalf95@gmail.com>
* all done, graphics commands written in draw however very messy and non matching
* figuring out data
* OK
* formatting before merge
* pr stuff
* more pr stuff
* pr changes
* ObjWarp2block OK
* Address petrie's comments
* Rename unused temp to reflect that it's padding
* Address fig comments
* Use a single byte in offset and size comments
* Address roman's comments
* all functions matching
* en_sth OK
* text formatting and added a description at the top
* some suggested changes
* merge master and remove text comments
Co-authored-by: Fig02 <fig02srl@gmail.com>
* starting out
* match demo
* full match
* cleanup
* more names
* more names
* headers
* dist from link
* docs
* objects
* format
* organization of xmls
* merge actor
* Update src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
* Update src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
* format
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: Fig02 <fig02srl@gmail.com>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>