I also picked up on why I was having such horrible circular dependence problems with DEACCON. Apparently C++ has to figure out how much memory an instance of class would take up so that it knows how much to allocate, which does make sense. Because I had two classes that contained instance of each other it was impossible for the compiler to figure out how big each one would be. With that knowledge in hand it becomes somewhat obvious that a pointer should be used in place of the class instance since they are of fixed size. Now back to work on DEACCON.
Dassie Study Upgraded
I realized this morning that there was a major bug in way the back and forward buttons were being handled in the study. It was possible to change which scenario/role the participant was assigned by paging back and forward through the study. I have since corrected that and added additional data logging to record which scenario and role each participant was assigned.