* Project Deadlines ** December *** WAITING APC :PROPERTIES: :ATTACH_DIR: ~/proj/the_march/src/apc :END: **** FUNCTIONAL Directory Structure for assets CLOSED: [2016-11-30 Wed 09:59] **** FUNCTIONAL File syntax for directories CLOSED: [2016-11-30 Wed 10:00] CLOCK: [2016-10-18 Tue 9:30]--[2016-10-18 Tue 10:21] => 0:51 #+BEGIN: clocktable :maxlevel 2 :scope subtree #+CAPTION: Clock summary at [2016-10-16 Sun 11:46] | Headline | Time | |--------------+--------| | *Total time* | *0:01* | |--------------+--------| #+END: env_assets env/cityblock/ large/small/center (sets) signifigance of numbers in filenames vs letters letters - variations numbers - 1 horizontal, 2 vertical signifigance of numbering after _m env/cityblock /large /small /center /vertical /horizontal set_name set_id element_name element_id Directions in filenames for statics are ? Dont have framesheets so they dont need a direction. env_deco /env/deco/ name of archetype numbers signify variants alpha+ . '_m' . [digit]+ signifies mapping varriant **** REVISION Scanner :ATTACH: :PROPERTIES: :Attachments: scanner.c :ID: 2dec5876-7b81-4b9c-97fe-03b152fa276a :END: scanner to give possibly infinite children **** REVISION Lexer :ATTACH: :PROPERTIES: :Attachments: lexer.c lexer_lex.rl :ID: faf3ff67-f8e9-41fe-9a32-2ced4bbf5b99 :END: revise the scanner/lexer a little later and get these buffer sizes down a little. scanner should invoke lexer_lex directly instead of making lexer handle its own direntp stack. **** STARTED Parser/IR :ATTACH: :PROPERTIES: :Attachments: parser.y irmem.c ir.c ir.h :ID: fb24c302-4743-4a45-845a-4249d2b1a378 :END: **** TODO Output DEADLINE: <2016-10-20 Thu> ** Christmas Holiday (December 21 - January 5) *** TODO Test Suite for APC DEADLINE: <2016-12-31 Sat> *** TODO Animation Viewer DEADLINE: <2017-01-07 Sat> ** January *** TODO Core State Machine *** TODO Renderer *** TODO World Generator *** TODO Core Improvements *** TODO Front-end Hooks *** TODO Physics Engine *** TODO Actors *** TODO Audio Backend ** February *** TODO Account Management *** TODO User Management *** TODO Controllers *** TODO Internal Data Handling *** TODO Network Skeleton *** TODO Social Media *** TODO Core Gameplay *** TODO Gameplay Developments *** TODO Front-End Improvements (remote) *** TODO AI Start *** TODO Website Beta ** March *** TODO Gameplay - Win Conditions *** TODO Social Media Integration *** TODO Viable AI (Lua ^ JS) *** TODO Beta Deployment *** TODO Multiplay Beta *** TODO Early Access for Marketing * Notes 11/2 Changes to grammar Mapfiles and vdats are now going to be extracted at binary output time. This means that we dont have to handle text strings in the grammar, just filename and directory structure. E.g. mdats (which were mapfile data structs and are now called variants), no longer consist of quad lists but of the height/width of the frames inside the variant and the name of the filename so that it can be processed later at binary out. This is also true for vdats, which used to consist of spritesheets and are now just a height/width of the frames and the name of the file. Filepath is stored in vdat/variant. When should this get passed back? After height/width has been lexed. Theres a filename for every element. Not true for a set. Need to finish insert_vdat, insert_variant, lexfilename, ? 11/16 Adding directions to map files and models. Also adding SS operator to models to distinguish them from maps. ** DONE Add map operator changes to lexer.c ** DONE Rename mapping files ** TODO Review parser.y, irmem.c, ir.c, ir.h, lexer.c ** 11/16 *** DONE Determine when to alloc vdat and implement it Either have a SS opening operator that signifies to alloc_vdat or check the current vdat in insert_framesheet(). *Allocing an initial vdat at ir_init(), then allocing vdat for the next odat after vdat is complete. *** DONE Add directions to lexer_setstr fsm Add both the SS operator and the direction. *SS is the operator, D is the direction *** DONE Update lexer_setx() functions with directions First determine what to do about allocing the vdat because if we choose to have a single SS opening operator, then need to prune the str one past the operator so that lexstring only passes back a direction, and not the SS operator. This actually shouldnt be too difficult if we only have a single SS operator. *Didn't change anything because lex_lexstring() will handle SS and direction conversion. *** DONE Add files to test lexer_setstr directions inclusion Rewrite all the old ~/test/x files because they are all out of date at this point. Mapfiles need to be updated with directions after ~, and models need to have their SS operators incuded. Just need to make sure that the files are recognized correctly andd once they are, their str is set to the proper place for lexstring *** DONE Add directions to lexer_lexstring If encountering a mapfile or a SS operator, need to push operator, then convert the following letter (if it exists) to its numerical representation (0-8 for S-NW). Won't have to push operator if we only have a single operator. If it doesnt exist, need to push the default 0. **** TODO Write functions for ragel actions *** TODO Add files to test lexer_lexstring Need to make sure that lexstring does all the shit I just talked about. ** 11/18 *** DONE Link up ir and lexer because right now there are some inconsitencies *** DONE Add recursive sets Start with grammar insert_set() **** GET THIS DONE FIRST **** inset_set_vadtid() inset_set_svlink(); Insert_set_label -> insert_set_name + insert_set_ref() *** TODO Files that need changing **** DONE lexer.c Remove matching modelname and SS operator for framesheets X For vdats/maps, remove matching set names X Make a bunch of test files **** DONE lexer_fsm.rl **** TODO parser.y Set with only childlist valid? Ref_id rules make sense? **** TODO ir.h **** TODO ir.c **** TODO irmem.c *** DONE Add refs to end of models/mapsp *** DONE Change SS direction to SS_name_direction *** TODO Change PATH/NAME_MAX, MAX_MODEL_LEN, MAX_ELENAME_LEN, find out max odat name, should be a multiple of that. 11/27 Thinking of making FILENAME_MAX and FILEPATH_MAX for optimum clarity *** DONE Remove lexer_setstr, is useless now ** 11/22 *** TODO stpncpy() doesnt add a null byte if strlen(src) > n. Add one? *** DONE Does refid come after or before map? after *** DONE Test if SS LINK works in lexer.c ** 11/25 *** DONE Set parent odat name in insert_namelist? Either set the parent odats name, or set the parent odat which is the depth above *** TODO Add mlink to linkbuff *** TODO Should allocated vdats have num_models set to 0? Inside insert_framesheet of ir.c *** TODO insert_set() at end of set rule should insert the odat into its cdat represntation. ** 11/26 *** DONE Insert_namelist should handle implicitly defined sets 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 *** DONE current_set needs to return the current set at current depth Instead, just create a set at every depth in the setstack, assign parents/children based on setstack. *** DONE Where/when to malloc a set? When: When created in insert_namelist() Where: in set chunk stack *** TODO Reduce set_stack namelist (doesnt need 8 names for each depth)? *** TODO Revisit ir.h, Create list(in this todosection) of structs that need changing odat: remove hitbox, root map: remove entirely? root: remove? link: add mlink refid: whats the point of these things again? insert_x() functions: remove? *** TODO Handle case where numnames is > 8 *** TODO Where does ir_init get called? *** TODO Review insert_framesheet Should we set the odat vdat_idx/p here? *** TODO Write insert_set(); * Current TODO list ** General: *** TODO Rename NAME token to something more generic?? ** 11/01 ** TODO Make Null vdat why? ** DONE Fix all shift/reduce errors in new grammar ** DONE Add map variant changes (create new odat, share vdat) <<<<<<< HEAD ======= ** DONE Add map operator changes to lexer.c ** DONE Rename mapping files ** TODO Review parser.y, irmem.c, ir.c, ir.h, lexer.c #+STARTUP: ident #+TODO: TODO(t) STARTED(s) WAITING(w) | FUNCTIONAL(f) #+TODO: BUG(b) REVISION(r) UPDATING(u) | DONE (d) #+TODO: | CANCELED(c) >>>>>>> 5666c47853b4499c510f9e342d722841e4f6a5e0