29 lines
1.8 KiB
Plaintext
29 lines
1.8 KiB
Plaintext
NOTE: The current design is UML documented in the currentDesign.mdl file
|
|
which is there for your viewing pleasure with Rational Rose.
|
|
|
|
1. Physics Engine
|
|
As you can see, the Physics Engine is heavily modified. This was done because
|
|
PMD is a fickle lover, as such things needed to be moved around and rearranged.
|
|
rayTracing was moved into separate functions, instead of overloading
|
|
calculateNextPosition with every possible type of thing, it was decided to
|
|
better move things into separate functions, hence all the new cnp* functions.
|
|
These functions handle the specific things needed for given types of objects.
|
|
For example, Lemmings are treated differently by the Physics Engine than
|
|
Particles, though gravity and rayTracing are done the same between the two.
|
|
THe Physics Engine also handles some of the more Physics related Lemming
|
|
job types, such as Climber and Glider. It was deemed silly to use their given
|
|
process() functions as this would become overly complicated, though their Job
|
|
types still contain the process() function as well as having the Job classes
|
|
with new private members to store various features. For example, the Bridger
|
|
is treated exactly as a lemming, however his process function is called and
|
|
a part of the brick is laid until all twelve bricks are laid. In his class
|
|
he also has a "bricks" member which keeps track of the # of bricks laid.
|
|
|
|
2. Networking
|
|
Due to a problem with the network games and one person winning before the other
|
|
finished, it was necessary to create a LevelFinishMessage. This message informs
|
|
the other player when they have finished so as to bring the player to the
|
|
game stats screen. This message is pretty much a placeholder as it merely
|
|
needs to exist in sending, not actually send any large amount of data.
|
|
|