comparison RatPageModel.lua @ 13:6cb9a2936580

Miscellanous Lua code consistency improvements: - no semicolon except between statements on same line - use of implicit cast to bool in if/while conditions, instead of various eq/neq against true, false or nil - no parenthesis around if/while conditions (C-ism) - avoid long function calls in if conditions - removed space in comma-separated expressions lists in multiple assignments - added spaces between arguments of functions calls - use tabs for indentation (in Lua files only) - don't reverse == in if conditions, like "if 42==foo then" (C-ism) - removed some extra parenthesis in complex expressions (C-ism) - added spaces around operators in most expressions for ease of reading - added comma after last element of table initializers - removed space after # operator - moved comment prefix of disabled code into tab (to keep disabled code aligned)
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Thu, 25 Apr 2013 01:29:45 +0000
parents 8428fa7cf0e4
children 9f2d838d4f8e
comparison
equal deleted inserted replaced
12:72b92b3e476e 13:6cb9a2936580
1 --~ Warcraft Plugin for Cyborg MMO7 1 --~ Warcraft Plugin for Cyborg MMO7
2 --~ Filename: RatPageModel.lua 2 --~ Filename: RatPageModel.lua
3 --~ Description: Code model of the MMO7 mouse 3 --~ Description: Code model of the MMO7 mouse
4 --~ Copyright (C) 2012 Mad Catz Inc. 4 --~ Copyright (C) 2012 Mad Catz Inc.
5 --~ Author: Christopher Hooks 5 --~ Author: Christopher Hooks
6 6
17 --~ You should have received a copy of the GNU General Public License 17 --~ You should have received a copy of the GNU General Public License
18 --~ along with this program; if not, write to the Free Software 18 --~ along with this program; if not, write to the Free Software
19 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 --~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 -- Constants -- 20 -- Constants --
21 21
22 local RAT7 = { BUTTONS = 13, MODES = 3, SHIFT = 0} 22 local RAT7 = {
23 BUTTONS = 13,
24 MODES = 3,
25 SHIFT = 0,
26 }
23 27
24 local MIDDLEMOUSE = 1; 28 local MIDDLEMOUSE = 1
25 29
26 CyborgMMO_RatPageModel = { 30 CyborgMMO_RatPageModel = {
27 new = function() 31 new = function()
28 local self = {} 32 local self = {}
29 self.m_Mode = 1; 33 self.m_Mode = 1
30 self.ObserverCount = 0; 34 self.ObserverCount = 0
31 self.ObserverList = {} 35 self.ObserverList = {}
32 self.Data = {} 36 self.Data = {}
33 37
34 for i = 1,RAT7.MODES do 38 for i=1,RAT7.MODES do
35 self.Data[i] = {} 39 self.Data[i] = {}
36 for j = 1, RAT7.BUTTONS do 40 for j=1,RAT7.BUTTONS do
37 self.Data[i][j] = {}; 41 self.Data[i][j] = {}
38 end 42 end
39 end 43 end
40 44
41 self.InitSaveData = function(data) 45 self.InitSaveData = function(data)
42 for i = 1,RAT7.MODES do 46 for i=1,RAT7.MODES do
43 if (nil == data["Rat"][i]) then 47 if not data["Rat"][i] then
44 data["Rat"][i] = {} 48 data["Rat"][i] = {}
45 end 49 end
46 for j = 1, RAT7.BUTTONS do 50 for j=1,RAT7.BUTTONS do
47 if (nil == data["Rat"][i][j]) then 51 if not data["Rat"][i][j] then
48 data["Rat"][i][j] = {} 52 data["Rat"][i][j] = {}
49 end 53 end
50 end 54 end
51 end 55 end
52 end 56 end
53 57
54
55 self.LoadData = function() 58 self.LoadData = function()
56 msg("Loading...") 59 msg("Loading...")
57 local data = CyborgMMO_GetSaveData(); 60 local data = CyborgMMO_GetSaveData()
58 61
59 62 if not data["Rat"] then
60 if (nil == data["Rat"]) then
61 data["Rat"] = {} 63 data["Rat"] = {}
62 self.InitSaveData(data); 64 self.InitSaveData(data)
63 end 65 end
64 66
65 self.Data = data["Rat"] 67 self.Data = data["Rat"]
66 if(data ~= nil) then 68 if data then
67 for mode = 1,RAT7.MODES do 69 for mode=1,RAT7.MODES do
68 for button = 1, RAT7.BUTTONS do 70 for button=1,RAT7.BUTTONS do
69 if(self.Data[mode][button] ~= nil) then 71 if self.Data[mode][button] then
70 object = CyborgMMO_WowObject.Create(self.Data[mode][button].Type, self.Data[mode][button].Detail, self.Data[mode][button].Subdetail); 72 object = CyborgMMO_WowObject.Create(self.Data[mode][button].Type, self.Data[mode][button].Detail, self.Data[mode][button].Subdetail)
71 self.SetObjectOnButtonNoUpdate(button, mode, object); 73 self.SetObjectOnButtonNoUpdate(button, mode, object)
72 else 74 else
73 object = CyborgMMO_WowObject.Create("", "", ""); 75 object = CyborgMMO_WowObject.Create("", "", "")
74 self.SetObjectOnButtonNoUpdate(button, mode, object); 76 self.SetObjectOnButtonNoUpdate(button, mode, object)
75 self.Data[mode][button] = object; 77 self.Data[mode][button] = object
76 end 78 end
77 end 79 end
78 end 80 end
79 self.UpdateObservers(); 81 self.UpdateObservers()
80 end 82 end
81 end 83 end
82 84
83 self.SaveData = function() 85 self.SaveData = function()
84 msg("Saving...") 86 msg("Saving...")
85 CyborgMMO_SetSaveData(self.Data, "Rat"); 87 CyborgMMO_SetSaveData(self.Data, "Rat")
86 end 88 end
87 89
88 self.SetMode = function(mode) 90 self.SetMode = function(mode)
89 self.m_Mode = mode; 91 self.m_Mode = mode
90 self.UpdateObservers(); 92 self.UpdateObservers()
91 end 93 end
92 94
93 self.GetMode = function() 95 self.GetMode = function()
94 return self.m_Mode; 96 return self.m_Mode
95 end 97 end
96 98
97 self.GetData = function() 99 self.GetData = function()
98 return self.Data, self.m_Mode; 100 return self.Data,self.m_Mode
99 end 101 end
100 102
101 self.GetObjectOnButton = function(button) 103 self.GetObjectOnButton = function(button)
102 if(nil == self.Data[self.m_Mode][button]) then 104 if not self.Data[self.m_Mode][button] then
103 return nil; 105 return nil
104 else 106 else
105 return self.Data[self.m_Mode][button] 107 return self.Data[self.m_Mode][button]
106 end 108 end
107 end 109 end
108 110
109 self.SetObjectOnButtonNoUpdate = function(button, mode, object) 111 self.SetObjectOnButtonNoUpdate = function(button, mode, object)
110 --msg("button = "..tostring(button).." mode = "..tostring(mode)) 112 -- msg("button = "..tostring(button).." mode = "..tostring(mode))
111 self.Data[mode][button] = object; 113 self.Data[mode][button] = object
112 114
113 if(nil ~= object) then 115 if object then
114 object.SetBinding(CyborgMMO_WowCommands[((mode-1)*RAT7.BUTTONS)+button]); 116 object.SetBinding(CyborgMMO_WowCommands[((mode-1)*RAT7.BUTTONS)+button])
115 if("callback" == object.Type) then 117 if("callback" == object.Type) then
116 msg("trying to set texture") 118 msg("trying to set texture")
117 local slot = getglobal("CyborgMMO_MainPageSlotListSlot"..button); 119 local slot = getglobal("CyborgMMO_MainPageSlotListSlot"..button)
118 slot:SetNormalTexture(object.Texture) 120 slot:SetNormalTexture(object.Texture)
119 end 121 end
120 else 122 else
121 msg("clearing "..button) 123 msg("clearing "..button)
122 CyborgMMO_WowObject.ClearBinding(CyborgMMO_WowCommands[((mode-1)*RAT7.BUTTONS)+button]) 124 CyborgMMO_WowObject.ClearBinding(CyborgMMO_WowCommands[((mode-1)*RAT7.BUTTONS)+button])
123 end 125 end
124 end 126 end
125 127
126 self.SetObjectOnButton = function(button, mode, object) 128 self.SetObjectOnButton = function(button, mode, object)
127 self.SetObjectOnButtonNoUpdate(button, mode, object); 129 self.SetObjectOnButtonNoUpdate(button, mode, object)
128 self.UpdateObservers() 130 self.UpdateObservers()
129 end 131 end
130 132
131 self.AddObserver = function(view) 133 self.AddObserver = function(view)
132 table.insert(self.ObserverList,view) 134 table.insert(self.ObserverList, view)
133 self.observerCount = # self.ObserverList 135 self.observerCount = #self.ObserverList
134 end 136 end
135 137
136 self.GetAllObservers = function() 138 self.GetAllObservers = function()
137 return self.ObserverList; 139 return self.ObserverList
138 end 140 end
139 141
140 self.UpdateObservers = function() 142 self.UpdateObservers = function()
141 for i = 1, (# self.ObserverList) do 143 for i=1,#self.ObserverList do
142 self.ObserverList[i].Update(self.Data, self.m_Mode) 144 self.ObserverList[i].Update(self.Data, self.m_Mode)
143 end 145 end
144 self.SaveData() 146 self.SaveData()
145 end 147 end
146 return self; 148
149 return self
147 end, 150 end,
148 151
149 m_Instance = nil, 152 m_Instance = nil,
150 153
151 Instance = function() 154 Instance = function()
152 if(nil == CyborgMMO_RatPageModel.m_Instance) then 155 if not CyborgMMO_RatPageModel.m_Instance then
153 CyborgMMO_RatPageModel.m_Instance = CyborgMMO_RatPageModel.new(); 156 CyborgMMO_RatPageModel.m_Instance = CyborgMMO_RatPageModel.new()
154 end 157 end
155 return CyborgMMO_RatPageModel.m_Instance; 158 return CyborgMMO_RatPageModel.m_Instance
156 end 159 end,
157 } 160 }
161