annotate LightClone/Source/Program.cpp @ 75:57c0ce406a68 tip

Add main menu
author koryspansel <koryspansel@bendbroadband.com>
date Tue, 18 Oct 2011 17:08:17 -0700
parents 95677f648a2c
children
rev   line source
36
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
1 /*
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
2 * Program
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
3 */
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
4
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
5 #include "Program.h"
54
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
6 #include "Compiler.h"
36
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
7
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
8 /*
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
9 * Program
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
10 */
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
11 Program::Program()
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
12 {
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
13 }
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
14
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
15 /*
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
16 * Initialize
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
17 */
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
18 ErrorCode Program::Initialize()
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
19 {
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
20 return Clear(), Error_Success;
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
21 }
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
22
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
23 /*
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
24 * Terminate
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
25 */
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
26 void Program::Terminate()
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
27 {
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
28 }
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
29
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
30 /*
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
31 * SetAction
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
32 */
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
33 void Program::SetAction(uint32 nFunction, uint32 nIndex, uint32 nAction)
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
34 {
54
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
35 if(nFunction < MaximumFunctionCount && nIndex < MaximumInstructionCount)
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
36 {
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
37 kFunction[nFunction].nInstruction[nIndex] = nAction;
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
38 }
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
39 }
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
40
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
41 /*
54
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
42 * GetAction
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
43 */
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
44 uint32 Program::GetAction(uint32 nFunction, uint32 nIndex) const
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
45 {
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
46 return (nFunction < MaximumFunctionCount && nIndex < MaximumInstructionCount) ? kFunction[nFunction].nInstruction[nIndex] : 0;
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
47 }
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
48
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
49 /*
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
50 * Clear
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
51 */
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
52 void Program::Clear()
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
53 {
54
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
54 for(uint32 i = 0; i < MaximumFunctionCount; ++i)
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
55 {
54
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
56 for(uint32 j = 0; j < MaximumInstructionCount; ++j)
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
57 {
54
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
58 kFunction[i].nInstruction[j] = Action_None;
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
59 }
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
60 }
37
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
61 }
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
62
58a16d529d95 Refactoring code and adding events for drag and drop
koryspansel <koryspansel@bendbroadband.com>
parents: 36
diff changeset
63 /*
36
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
64 * Upload
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
65 */
38
2caa7c7e2cb5 Refactored program; Added dialog
koryspansel
parents: 37
diff changeset
66 ErrorCode Program::Upload(VirtualMachine& kMachine) const
36
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
67 {
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
68 kMachine.Reset();
54
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
69 kMachine.Clear();
53
8cefb65577cc Clean up world states
koryspansel
parents: 38
diff changeset
70
54
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
71 Compiler kCompiler;
95677f648a2c Refactored VirtualMachine
koryspansel
parents: 53
diff changeset
72 return kCompiler.Compile(*this, kMachine.GetMemoryPointer(), kMachine.GetMemorySize());
36
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
73
b60cbf3fa894 Refactoring 'Code' & VM logic
koryspansel
parents:
diff changeset
74 }