Advanced changes to the code

This document gives some explanation of how to do advanced changes to the code. It is highly recommended you do not attempt this unless you know how to program in C++ (including object-oriented programming) and you understand how the code in this project works. All guidance in this document is only guidance, not a procedure which is guaranteed to work. The changed mentioned in this document haven't been tested so the list of things to change might not be exhaustive (and errors will occur if there are things missing and you only do what is listed here).

Adding new cell type
Adding new degradation
Adding new state