7 :ATTACH_DIR: ~/proj/the_march/src/apc
9 **** TODO Directory Structure for assets
10 CLOCK: [2016-10-16 Sun 11:43]--[2016-10-16 Sun 11:45] => 0:02
11 #+BEGIN: clocktable :maxlevel 2 :scope subtree
12 #+CAPTION: Clock summary at [2016-10-16 Sun 11:45]
14 |--------------+--------|
15 | *Total time* | *0:02* |
16 |--------------+--------|
19 **** TODO File syntax for directories
20 CLOCK: [2016-10-18 Tue 9:30]--[2016-10-18 Tue 10:21] => 0:51
22 #+BEGIN: clocktable :maxlevel 2 :scope subtree
23 #+CAPTION: Clock summary at [2016-10-16 Sun 11:46]
25 |--------------+--------|
26 | *Total time* | *0:01* |
27 |--------------+--------|
32 large/small/center (sets)
33 signifigance of numbers in filenames vs letters
35 numbers - 1 horizontal, 2 vertical
36 signifigance of numbering after _m
44 set_name set_id element_name element_id
46 Directions in filenames for statics are ?
47 Dont have framesheets so they dont need a direction.
54 numbers signify variants
55 alpha+ . '_m' . [digit]+ signifies mapping varriant
56 ***** TODO Add x,y to filenames
57 **** TODO Scanner :ATTACH:
59 :Attachments: scanner.c
60 :ID: 2dec5876-7b81-4b9c-97fe-03b152fa276a
62 **** TODO Lexer :ATTACH:
64 :Attachments: lexer.c lexer_lex.rl
65 :ID: faf3ff67-f8e9-41fe-9a32-2ced4bbf5b99
67 **** TODO Parser/IR :ATTACH:
69 :Attachments: parser.y irmem.c ir.c ir.h
70 :ID: fb24c302-4743-4a45-845a-4249d2b1a378
72 ***** TODO Add mdats to IR to handle multiple mappings for archetypes
73 CLOCK: [2016-10-20 Thu 20:12]--[2016-10-20 Thu 23:12] => 3:00
74 Recording: Lexer Lex(Mapfile)
75 Maps can have variants and animations. Adding a state machine
76 into the lexer that will parse png files and return its frame information.
77 CLOCK: [2016-10-20 Thu 19:28]--[2016-10-20 Thu 19:46] => 0:18
78 insert_mdat now compiles
79 CLOCK: [2016-10-20 Thu 18:10]--[2016-10-20 Thu 18:53] => 0:43
80 CLOCK: [2016-10-20 Thu 15:24]--[2016-10-20 Thu 16:24] => 1:00
81 CLOCK: [2016-10-20 Thu 13:13]--[2016-10-20 Thu 14:10] => 0:57
82 #+BEGIN: clocktable :maxlevel 2 :scope subtree
83 #+CAPTION: Clock summary at [2016-10-20 Thu 14:10]
85 |--------------+--------|
86 | *Total time* | *0:57* |
87 |--------------+--------|
89 ****** DONE Create variant_list in odat
90 ****** DONE Init num_variants
91 ****** DONE Create mdat struct
92 ****** DONE Create new quad struct
93 ****** DONE Change insert_quad() to insert x,y,z, and ref_id
94 ****** DONE Change parser.y to include quad_list
95 ****** DONE In elements, populate parent_id with set. In sets, set parent_id to null.
96 ****** DONE Incorporate mdat into parser and ir
97 ****** TODO Implement Lexer_lexmapfile
98 Where are we storing the map file animations? Mdats will have framesheets.
99 ****** TODO Remove set name token in elements being passed back
100 ****** DONE Lexer_lex should pass control to lexer_lexmapfile
101 When it recognizes a '_m\0', call lexer_lexmapfile
102 The const str passed to lexer_lex is screwing up the state machine because
103 the suffix isnt truly pruned (so pe == . instead of \0)
104 Mappings come before archetypes.
110 parent_id should be pointer or ref_id? pointer
111 Root mandatory, hitbox optional? Only a variant list?
112 mopen/close in skeleton rule requires lexer to pass a operator
113 for every new skeleton
114 inesrt_mdat() needs more?
117 DEADLINE: <2016-10-20 Thu>
118 *** TODO Test Suite for APC
119 DEADLINE: <2016-10-20 Thu>
120 *** TODO Animation Viewer
121 DEADLINE: <2016-10-31 Mon>
124 *** TODO Core State Machine
125 DEADLINE: <2016-11-10 Thu>
127 DEADLINE: <2016-11-10 Thu>
128 *** TODO World Generator - Beta
129 DEADLINE: <2016-11-20 Sun>
130 *** TODO Core Improvements
131 DEADLINE: <2016-11-20 Sun>
132 *** TODO Front-end Hooks
133 DEADLINE: <2016-11-20 Sun>
134 *** TODO World Generator - Stable
135 DEADLINE: <2016-11-30 Wed>
136 *** TODO Physics Engine
137 SCHEDULED: <2016-11-30 Wed>
138 DEADLINE: <2016-12-20 Tue>
140 DEADLINE: <2016-11-30 Wed>
141 *** TODO Audio Backend
142 DEADLINE: <2016-11-30 Wed>
145 *** TODO Account Management
146 DEADLINE: <2016-12-10 Sat>
147 *** TODO User Management
148 DEADLINE: <2016-12-10 Sat>
149 *** TODO Controllers - Beta
150 DEADLINE: <2016-12-10 Sat>
151 *** TODO Internal Data Handling
152 DEADLINE: <2016-12-10 Sat>
153 *** TODO Network Skeleton
154 DEADLINE: <2016-12-10 Sat>
155 *** TODO Social Media
156 SCHEDULED: <2016-12-10 Sat>
157 *** TODO Core Gameplay
158 SCHEDULED: <2016-12-20 Tue>
159 *** TODO Account Management - Stable
160 DEADLINE: <2016-12-20 Tue>
161 *** TODO Controllers - Stable
162 DEADLINE: <2016-12-20 Tue>
164 ** Christmas Holiday (December 21 - January 5)
165 *** TODO Gameplay Developments
166 *** TODO Front-End Improvements (remote)
168 *** TODO Website Beta
171 *** TODO Gameplay - Win Conditions
172 DEADLINE: <2017-01-10 Tue>
173 *** TODO Social Media Integration
174 DEADLINE: <2017-01-10 Tue>
175 *** TODO Viable AI (Lua ^ JS)
176 DEADLINE: <2017-01-20 Fri>
179 *** TODO Beta Deployment
180 DEADLINE: <2017-02-01 Wed>
181 *** TODO Multiplay Beta
182 DEADLINE: <2017-02-01 Wed>
183 *** TODO Early Access for Marketing
184 DEADLINE: <2017-02-01 Wed>
191 11/2 Changes to grammar
192 Mapfiles and vdats are now going to be extracted at binary output time. This means
193 that we dont have to handle text strings in the grammar, just filename and directory structure.
194 E.g. mdats (which were mapfile data structs and are now called variants), no longer consist of quad
195 lists but of the height/width of the frames inside the variant and the name of the filename so that
196 it can be processed later at binary out. This is also true for vdats, which used to consist of spritesheets
197 and are now just a height/width of the frames and the name of the file.
199 Filepath is stored in vdat/variant. When should this get passed back? After height/width has
202 Theres a filename for every element. Not true for a set.
204 Need to finish insert_vdat, insert_variant, lexfilename, ?
206 11/16 Adding directions to map files and models. Also adding SS operator to models to distinguish them
208 ** DONE Add map operator changes to lexer.c
209 ** DONE Rename mapping files
210 ** TODO Review parser.y, irmem.c, ir.c, ir.h, lexer.c
212 *** DONE Determine when to alloc vdat and implement it
213 Either have a SS opening operator that signifies to alloc_vdat or check the current vdat
214 in insert_framesheet().
215 *Allocing an initial vdat at ir_init(), then allocing vdat for the next odat after vdat is complete.
216 *** DONE Add directions to lexer_setstr fsm
217 Add both the SS operator and the direction.
218 *SS is the operator, D is the direction
219 *** DONE Update lexer_setx() functions with directions
220 First determine what to do about allocing the vdat because if we choose to have a single
221 SS opening operator, then need to prune the str one past the operator so that lexstring
222 only passes back a direction, and not the SS operator. This actually shouldnt be too difficult
223 if we only have a single SS operator.
224 *Didn't change anything because lex_lexstring() will handle SS and direction conversion.
225 *** DONE Add files to test lexer_setstr directions inclusion
226 Rewrite all the old ~/test/x files because they are all out of date at this point. Mapfiles
227 need to be updated with directions after ~, and models need to have their SS operators incuded.
228 Just need to make sure that the files are recognized correctly andd once they are, their str
229 is set to the proper place for lexstring
230 *** DONE Add directions to lexer_lexstring
231 If encountering a mapfile or a SS operator, need to push operator, then convert the following
232 letter (if it exists) to its numerical representation (0-8 for S-NW). Won't have to push operator
233 if we only have a single operator. If it doesnt exist, need to push the default 0.
234 **** TODO Write functions for ragel actions
235 *** TODO Add files to test lexer_lexstring
236 Need to make sure that lexstring does all the shit I just talked about.
238 *** DONE Link up ir and lexer because right now there are some inconsitencies
239 *** DONE Add recursive sets
241 insert_set() **** GET THIS DONE FIRST ****
244 Insert_set_label -> insert_set_name + insert_set_ref()
245 *** TODO Files that need changing
247 Remove matching modelname and SS operator for framesheets X
248 For vdats/maps, remove matching set names X
249 Make a bunch of test files
250 **** DONE lexer_fsm.rl
252 Set with only childlist valid?
253 Ref_id rules make sense?
257 *** DONE Add refs to end of models/mapsp
258 *** DONE Change SS direction to SS_name_direction
259 *** TODO Change PATH/NAME_MAX, MAX_MODEL_LEN, MAX_ELENAME_LEN, find out max odat name, should be a
261 11/27 Thinking of making FILENAME_MAX and FILEPATH_MAX for optimum clarity
262 *** DONE Remove lexer_setstr, is useless now
264 *** TODO stpncpy() doesnt add a null byte if strlen(src) > n. Add one?
265 *** DONE Does refid come after or before map?
267 *** DONE Test if SS LINK works in lexer.c
269 *** DONE Set parent odat name in insert_namelist?
270 Either set the parent odats name, or set the parent odat which is the depth above
271 *** TODO Add mlink to linkbuff
272 *** TODO Should allocated vdats have num_models set to 0?
273 Inside insert_framesheet of ir.c
274 *** TODO insert_set() at end of set rule should insert the odat into its cdat represntation.
276 *** DONE Insert_namelist should handle implicitly defined sets
277 Create the parents too. E.g. for A_B_C and setstack has A, shoudl create B, link to A, create C, link to B
278 *** DONE current_set needs to return the current set at current depth
279 Instead, just create a set at every depth in the setstack, assign parents/children based on setstack.
280 *** DONE Where/when to malloc a set?
281 When: When created in insert_namelist()
282 Where: in set chunk stack
283 *** TODO Reduce set_stack namelist (doesnt need 8 names for each depth)?
284 *** TODO Revisit ir.h, Create list(in this todosection) of structs that need changing
285 odat: remove hitbox, root
286 map: remove entirely?
289 refid: whats the point of these things again?
290 insert_x() functions: remove?
291 *** TODO Handle case where numnames is > 8
292 *** TODO Where does ir_init get called?
293 *** TODO Review insert_framesheet
294 Should we set the odat vdat_idx/p here?
295 *** TODO Write insert_set();
301 *** TODO Rename NAME token to something more generic??
303 ** TODO Make Null vdat
305 ** DONE Fix all shift/reduce errors in new grammar
306 ** DONE Add map variant changes (create new odat, share vdat)