MCPcopy Create free account
hub / github.com/crossuo/crossuo / Load

Method Load

src/Macro.cpp:138–198  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138CMacro *CMacro::Load(CMappedFile &file)
139{
140 uint8_t *next = file.Ptr;
141 short size = file.ReadInt16LE();
142 next += size;
143
144 auto key = file.ReadInt32LE();
145 bool alt = false;
146 if ((key & MODKEY_ALT) != 0)
147 {
148 key -= MODKEY_ALT;
149 alt = true;
150 }
151
152 bool ctrl = false;
153 if ((key & MODKEY_CTRL) != 0)
154 {
155 key -= MODKEY_CTRL;
156 ctrl = true;
157 }
158
159 bool shift = false;
160 if ((key & MODKEY_SHIFT) != 0)
161 {
162 key -= MODKEY_SHIFT;
163 shift = true;
164 }
165
166 int count = file.ReadInt16LE();
167 auto macro = new CMacro(key, alt, ctrl, shift);
168 for (int i = 0; i < count; i++)
169 {
170 auto type = file.ReadUInt8();
171 MACRO_CODE code = (MACRO_CODE)file.ReadUInt16LE();
172 MACRO_SUB_CODE subCode = (MACRO_SUB_CODE)file.ReadUInt16LE();
173 CMacroObject *obj = nullptr;
174 switch (type)
175 {
176 case 0: //original
177 {
178 obj = new CMacroObject(code, subCode);
179 break;
180 }
181 case 2: //with string
182 {
183 short len = file.ReadUInt16LE();
184 auto str = file.ReadString(len);
185 obj = new CMacroObjectString(code, subCode, str);
186 break;
187 }
188 default:
189 break;
190 }
191 if (obj != nullptr)
192 {
193 macro->Add(obj);
194 }
195 }

Callers 6

mainFunction · 0.45
InstallMethod · 0.45
LoadStartupConfigMethod · 0.45
LoadLocalConfigMethod · 0.45
LoadShadersMethod · 0.45

Calls 6

ReadInt16LEMethod · 0.80
ReadInt32LEMethod · 0.80
ReadUInt8Method · 0.80
ReadUInt16LEMethod · 0.80
ReadStringMethod · 0.80
AddMethod · 0.45

Tested by

no test coverage detected