Mercurial > LightClone
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 | 1 /* |
2 * Program | |
3 */ | |
4 | |
5 #include "Program.h" | |
54 | 6 #include "Compiler.h" |
36 | 7 |
8 /* | |
9 * Program | |
10 */ | |
11 Program::Program() | |
12 { | |
13 } | |
14 | |
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 | 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 | 31 * SetAction |
32 */ | |
33 void Program::SetAction(uint32 nFunction, uint32 nIndex, uint32 nAction) | |
34 { | |
54 | 35 if(nFunction < MaximumFunctionCount && nIndex < MaximumInstructionCount) |
38 | 36 { |
37 kFunction[nFunction].nInstruction[nIndex] = nAction; | |
38 } | |
39 } | |
40 | |
41 /* | |
54 | 42 * GetAction |
43 */ | |
44 uint32 Program::GetAction(uint32 nFunction, uint32 nIndex) const | |
45 { | |
46 return (nFunction < MaximumFunctionCount && nIndex < MaximumInstructionCount) ? kFunction[nFunction].nInstruction[nIndex] : 0; | |
47 } | |
48 | |
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 | 54 for(uint32 i = 0; i < MaximumFunctionCount; ++i) |
38 | 55 { |
54 | 56 for(uint32 j = 0; j < MaximumInstructionCount; ++j) |
38 | 57 { |
54 | 58 kFunction[i].nInstruction[j] = Action_None; |
38 | 59 } |
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 | 64 * Upload |
65 */ | |
38 | 66 ErrorCode Program::Upload(VirtualMachine& kMachine) const |
36 | 67 { |
68 kMachine.Reset(); | |
54 | 69 kMachine.Clear(); |
53 | 70 |
54 | 71 Compiler kCompiler; |
72 return kCompiler.Compile(*this, kMachine.GetMemoryPointer(), kMachine.GetMemorySize()); | |
36 | 73 |
74 } |