{"id":1091,"date":"2010-12-18T08:39:31","date_gmt":"2010-12-18T13:39:31","guid":{"rendered":"https:\/\/www.caskeys.com\/dc\/?p=1091"},"modified":"2017-01-15T23:16:31","modified_gmt":"2017-01-16T04:16:31","slug":"work-log","status":"publish","type":"post","link":"https:\/\/www.caskeys.com\/dc\/work-log\/","title":{"rendered":"Work Log"},"content":{"rendered":"<p>This is a general work log for my Fatal Fury Chronicles module project. The goal is to replicate game play elements found within SNK&#8217;s Fatal Fury series in a side scrolling Final Fight style environment, while presenting the back story in a more cohesive layout. At the start of this log (11292010) the module is in a playable beta state.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Character Line Up\" src=\"http:\/\/caskeys.com\/arc\/games\/openbor\/wiki\/images\/1\/1e\/Ff_chronicals_0001.png\" alt=\"\" width=\"549\" height=\"86\" \/><\/p>\n<h3>11292010<\/h3>\n<ul>\n<li>Start of work log.<\/li>\n<li>Project back under way after being idle for approximately one year.<\/li>\n<li>Resolved issue of crashing instantly during menu on newer revisions. Issue turned out to be nothing more then a leftover configuration save file. Module is in beta status; it has one fully playable stage and one test area, but I would like to add more content before releasing any kind of demo.<\/li>\n<\/ul>\n<h3>11302010<\/h3>\n<ul>\n<li>Andy Bogard now uses randomized sound effect system. See <em>soun0005()<\/em> function.<\/li>\n<\/ul>\n<h3>12012010<\/h3>\n<ul>\n<li>Merge old MS Word based work log.<\/li>\n<\/ul>\n<h3>12022010<\/h3>\n<ul>\n<li>Andy Bogard model scripts converted to latest convention.<\/li>\n<li>Terry Bogard model scripts converted to latest convention.<\/li>\n<li>AI Ray McDougal model scripts converted to latest convention.<\/li>\n<li>Bug fixes.<\/li>\n<\/ul>\n<h3>12032010<\/h3>\n<ul>\n<li>Cut JUMPDELAY from 18 to 8; too much of a pause before jump executes.<\/li>\n<li>Parked cruisers in Sound Beach stage now catch fire immediately when damaged (previously not until destroyed) and sink with scripted velocities instead of offset\/base manipulation.<\/li>\n<\/ul>\n<h3>12052010<\/h3>\n<ul>\n<li>Added entity verify to <em>draw0001()<\/em>. Previously it would cause immediate shutdown if called on non existent entity.<\/li>\n<li>Andy Bogard &amp; Raiden sprite files converted to nameless serial convention.<\/li>\n<li>Bug fixes.<\/li>\n<\/ul>\n<h3>12062010<\/h3>\n<ul>\n<li>All models and sprites in <em>data\/misc\/effects<\/em> updated to serial name convention.<\/li>\n<\/ul>\n<h3>12072010<\/h3>\n<ul>\n<li>Function <em>bind0010()<\/em> merged from <a title=\"Golden Axe The Hackjob project.\" href=\"?cat=5\">Golden Axe Hackjob<\/a>.<\/li>\n<li>Function <em>dama0004()<\/em> merged from <a title=\"Golden Axe The Hackjob project.\" href=\"post.php?cat=5\">Golden Axe Hackjob<\/a>.<\/li>\n<li>All models and sprites in <em>data\/misc\/flash<\/em> updated to serial name convention, cataloged in master sprite database and moved to <em>data\/misc\/effects<\/em>.<\/li>\n<li>All models and sprites in <em>data\/misc\/dust<\/em> updated to serial name convention, cataloged in master sprite database and moved to <em>data\/misc\/effects<\/em>.<\/li>\n<\/ul>\n<h3>12082010<\/h3>\n<ul>\n<li>Terry Bogard and Ray sprites updated to nameless serial convention. This completes update of all primary models to date.<\/li>\n<li>Latest <em>draw0001()<\/em> and it&#8217;s support functions now use target&#8217;s current alpha setting instead of an entity var to get and store the blend parameter. Exact same functionality, but with one less wasted variable and one less script parameter to worry about initializing when entities are spawned. I should have spotted it two years ago.<\/li>\n<li>Flashes use MP as a sound constant in place of if\/list based on alias.<\/li>\n<li>Flashes use Nodrop property as random rotation range.<\/li>\n<li>All previously uncatalogued sounds removed from main sound folder. Model specific sounds moved to their respective owners still need cataloging.<\/li>\n<\/ul>\n<h3>12092010<\/h3>\n<ul>\n<li>Script removal. Several spawn scripts are no longer needed; they basically performed the same function with minor differences. Their functionality is now consolidated into <em>spaw0002.c <\/em>with sound cataloging and <a href=\"?p=1016\">free variable<\/a> application.\n<ul>\n<li><em>spaw0003.c<\/em><\/li>\n<li><em>spaw0006.c<\/em><\/li>\n<li><em>spaw0007.c<\/em><\/li>\n<li><em>spaw0008.c<\/em><\/li>\n<li><em>spaw0009.c<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Ray and Raiden&#8217;s sounds cataloged. Both still need sound calls upgraded to <em>soun0005.c<\/em> function.<\/li>\n<li>Flash spawning function created (<em>bind0022()<\/em>).<\/li>\n<\/ul>\n<h3>12102010<\/h3>\n<ul>\n<li>Flash spawning fully integrated. Required new functions (summ0002() and bind0023) see below.<\/li>\n<li>New function: <em>summ0002(void &lt;vEnt&gt; char &lt;cModel&gt; char &lt;cAlias&gt; int &lt;iMap&gt; int &lt;iBlend&gt; int &lt;iX&gt; int &lt;iY&gt; int &lt;iZ&gt; int &lt;iDir&gt; int &lt;iAni&gt; int &lt;iFrame&gt; int &lt;iKill&gt;)<br \/>\n<\/em><\/p>\n<ul>\n<li>Spawns an entity (usually a flash) by name unless &lt;vEnt&gt; has a custom flash defined by the flash model header command, in which case the defined custom flash will be spawned. Location is screen based.<\/li>\n<\/ul>\n<\/li>\n<li>New function: <em>bind0023(void &lt;vTarget&gt; char &lt;cModel&gt; char &lt;cAlias&gt; int &lt;iMap&gt; int &lt;iBlend&gt; float &lt;fAX&gt; float &lt;fAY&gt; int &lt;iAZ&gt; int &lt;iDir&gt; int &lt;iAni&gt; int &lt;iFrame&gt; int &lt;iKill&gt;)<\/em>\n<ul>\n<li>Spawns an entity (usually a flash) by name and binds to location of &lt;vEnt&gt;. If &lt;vEnt&gt; has a custom flash defined by the flash model header command, the defined custom flash will be spawned instead.<\/li>\n<\/ul>\n<\/li>\n<li>Adjusted block push back (<em>bloc0002()<\/em>, called in <em>z_hit<\/em>.c). Previously multiple incoming hits could force the blocking character a ridiculous distance across screen.<\/li>\n<li>Merging <em>bind0010()<\/em> functionality:\n<ul>\n<li>Andy Bogard\n<ul>\n<li>Grabbackward<\/li>\n<li>Grabforward<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>12132010<\/h3>\n<ul>\n<li>Imported <em>key0006()<\/em> from <a title=\"Golden Axe The Hackjob project.\" href=\"post.php?cat=5\">Golden Axe Hackjob<\/a> and finished updating <em>keyall.c<\/em> to latest standard. Had missed these earlier; <em>debu0001()<\/em> cannot work without them.<\/li>\n<li>Added font3.png (it&#8217;s a copy of font2 for now). Not normally needed in game, but is used by <em>debu0001()<\/em>.<\/li>\n<li>Removed final frame from Andy Bogard&#8217;s taunts. Idle animations already include transition frames.<\/li>\n<\/ul>\n<h3>12142010<\/h3>\n<ul>\n<li>Further progress for &#8220;bind to target&#8221; capability in <em>bind0010()<\/em>. Only needs velocity application.<\/li>\n<\/ul>\n<h3>12152010<\/h3>\n<ul>\n<li><em>debu0001()<\/em> now includes ability to toggle autozoom from <em>draw0001()<\/em>.<\/li>\n<li><em>key0006()<\/em> given new parameter &lt;fQnt&gt;. Allows increments\/decrements by specified quantity instead of static 1.<\/li>\n<li><em>bind0010()<\/em> modes rearranged (in progress). See function.<\/li>\n<\/ul>\n<h3>12162010<\/h3>\n<ul>\n<li>New function: <em>ani0012(void &lt;ent&gt;, int &lt;iH&gt;, int &lt;iFrame&gt;)<\/em>\n<ul>\n<li>Skips to &lt;iFrame&gt; if target&#8217;s Y axis position is &lt;= &lt;iH&gt;. Allows jump animations to adapt to variable height (i.e. don&#8217;t start a full somersault during a short hop).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>12172010<\/h3>\n<ul>\n<li>Taunt\/Poses now mapped to <strong><span style=\"color: #ff6600;\">Special<\/span><\/strong> + <strong><span style=\"color: #ff0000;\">Attack<\/span><\/strong> + <strong><span style=\"color: #008000;\">(optional) Direction<\/span><\/strong> instead of <strong><span style=\"color: #800080;\">Pose<\/span><\/strong> + <strong><span style=\"color: #008000;\">(optional) Direction<\/span><\/strong>. This cuts action keys back to <strong><span style=\"color: #ff0000;\">Attack<\/span><\/strong>, <strong><span style=\"color: #0000ff;\">Jump<\/span><\/strong>, <strong><span style=\"color: #ff6600;\">Special<\/span><\/strong>, and <strong><span style=\"color: #808080;\">Backstep<\/span><\/strong>. A fifth action key dedicated to poses just seemed cumbersome and didn&#8217;t mesh well with the overall control scheme.<\/li>\n<li><em>bind0010()<\/em> modifications complete. Now accommodates binding based on attacker or defender&#8217;s location and automatic adjustments to deal with larger\/smaller characters without switching animations.<\/li>\n<\/ul>\n<h3>12182010<\/h3>\n<ul>\n<li>Separated Work Log from Bug List\/Notes. It was getting unwieldy to sift through, and separation will also allow tabbing between &#8220;to do&#8221; and current progress rather then scrolling. The Bug List\/Notes article will probably need breaking down later as well.<\/li>\n<li>Updated <em>dama0002()<\/em> function:\n<ul>\n<li> Grapple binds are now released correctly when taking damage.<\/li>\n<\/ul>\n<\/li>\n<li>Updated <em>pain0001()<\/em> function:\n<ul>\n<li>Hit level animation switching now verifies alternate pain animation before applying.<\/li>\n<li>Application of hit effects. See <em>effe0001()<\/em> function.<\/li>\n<\/ul>\n<\/li>\n<li>Updated <em>fall0001()<\/em> function:\n<ul>\n<li>Hit level animation switching now verifies alternate fall animation before applying.<\/li>\n<li>Individual checks broken down to separate if calls for readability.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>12192010<\/h3>\n<ul>\n<li>Updated <em>kill0001()<\/em> function.\n<ul>\n<li><em>draw0001()<\/em> no longer called to reset parent map for effect models (not needed as <em>draw0001()<\/em> is not used for standard mapping).<\/li>\n<li>Entity variable cleaning code replaced with <em>vars0001()<\/em> function.<\/li>\n<\/ul>\n<\/li>\n<li>Updated <em>spaw0002()<\/em> function.\n<ul>\n<li>Entity variable cleaning code was missing. Replaced with <em>vars0001() <\/em>function. Shouldn&#8217;t be needed since cleaning is done on entity removal by <em>kill0001()<\/em>, but adding it anyway in case an unforeseen engine glitch does not allow <em>kill0001()<\/em> to finish.<\/li>\n<li>Random name code replaced with <em>name0001()<\/em> function (function is identical to original name code).<\/li>\n<\/ul>\n<\/li>\n<li>Updated <em>fall0001()<\/em> function:\n<ul>\n<li>Application of hit effects. See <em>effe0001()<\/em> function.<\/li>\n<\/ul>\n<\/li>\n<li>Adjusted Ray&#8217;s Burn <em>animheight<\/em> accommodate burn effect.<\/li>\n<li>Added SPAIN and SHOCK animation to Ray; shock effect works as designed.<\/li>\n<li>On death fatality adjustments in progress. Is <em>komap<\/em> setting open to script?<\/li>\n<\/ul>\n<h3>12232010<\/h3>\n<ul>\n<li>New function:<em> <\/em><em>draw0006(void &lt;vEnt&gt; void &lt;vMatch&gt;)<\/em>\n<ul>\n<li>Enables matching of draw scale between two entities using their height settings. Replaces the &#8220;quick and dirty fix&#8221; that was in <em>kill0001()<\/em> for almost two years. Previously the fatality model spawned on burn death was given a static size adjustment of 75% as its sprites were over sized; the adjustment is now automated. An obvious added benefit is that it will also self adjust to match abnormally sized characters with any further amendments.<\/li>\n<\/ul>\n<\/li>\n<li>Replaced burn fatality sequence with ball explosion and <em>Komap<\/em> switching. See <em>kill0001()<\/em>. A better solution would be to turn <em>Komap<\/em> off, but due to the engine&#8217;s layout this is not yet possible. An engine modification is needed to fix this issue long term, but in game everything works as needed.\n<ul>\n<li>Look into using <em>hmap<\/em> property; if available to script, will remove need for static map constant when resetting <em>Komap<\/em>.\n<ul>\n<li><span style=\"color: #008000;\">12262010 &#8211; property open to script and can be used to replace static map constant as described.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>12242010<\/h3>\n<ul>\n<li>For <span style=\"text-decoration: line-through;\">whatever reason<\/span> stupidity on my part <em>jump0005()<\/em> function was embedded in <em>z_movez.h<\/em>. Function moved to its own file.<\/li>\n<\/ul>\n<h3>12252010<\/h3>\n<ul>\n<li>Setting for <em>komap<\/em> in <em>deat0001()<\/em> now uses <em>hmapl<\/em> property in place of <em>MAPX<\/em> constant.<\/li>\n<li>Function <em>soun0003()<\/em> (random KO sounds) removed. Functionality long since replaced by <em>soun0005()<\/em> and numeric based sound cataloging.<\/li>\n<\/ul>\n<h3>12262010<\/h3>\n<ul>\n<li>Variables <em>iRemap<\/em> and <em>iAlpha<\/em> removed from <em>draw0001()<\/em> function. There is no need for them as the passing -1 to either as a parameter in <em>setdrawmethod()<\/em> allows target entity to use its own property setting. Previously <em>setdrawmethod()<\/em> would override entity&#8217;s <em>map<\/em> and <em>alpha<\/em> properties, meaning they had to be adjusted through <em>draw0001()<\/em>.<\/li>\n<li>New function: <em>targ0002(void &lt;vEnt&gt; int &lt;iAni&gt; int &lt;iType&gt; int &lt;iSType&gt; int &lt;iTD&gt;)<\/em>\n<ul>\n<li>Find nearest entity within range of a base entity&#8217;s animation range setting that matches type, subtype and <a href=\"?p=1016\">throwdamage<\/a> parameters. Intended use is to replace item based music change and similar Easter eggs, but is useful for finding any specific entity not otherwise detectable with global <em>findtarget()<\/em> function.<\/li>\n<li>Step 1 for replacing item based music switching; detects when user presses key in close proximity to music switching trigger obstacle.<\/li>\n<\/ul>\n<\/li>\n<li>Script removal:\n<ul>\n<li><em>dust0001.h<\/em>\n<ul>\n<li>Was a name based spawn function only used by Sound Beach cruiser to spawn water splash. Water splash can be replicated by another function. General use for script has otherwise long since been replaced by my <em>dust<\/em> model header additions.<\/li>\n<\/ul>\n<\/li>\n<li><em>dust0002.h<\/em>\n<ul>\n<li>Similar to dust0001.h but with numerous parameters added. Functionality similarly replaced by recent additions to engine&#8217;s default <em>dust<\/em> system and was not in use at all.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>12282010<\/h3>\n<ul>\n<li>Andy Bogard&#8217;s palette sprites moved to &lt;char&gt;\/pals folder and converted to nameless serial. Palette 0015 (black) retouched to match KOF2000.<\/li>\n<li>New function: <em>file0001(int &lt;iVar&gt; char &lt;cFile&gt; char &lt;cRow&gt; int &lt;iColumn&gt;)<\/em>\n<ul>\n<li>Wrapper for basic text file reading; finds row by text passed through <em>&lt;cRow&gt;<\/em> and returns value located at column number <em>&lt;iColumn&gt;<\/em>.<\/li>\n<li>Step 2 for replacing item based music switching. Will locate music by by being passed music switch obstacle&#8217;s <em>&lt;aggression&gt;<\/em> value. Desired column will be passed as looping numeric cycle (not complete at this time).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>12292010<\/h3>\n<ul>\n<li>New function: <em>musi0001(void &lt;vEnt&gt; int &lt;iNotch&gt;)<\/em>\n<ul>\n<li>Locates text file argument by using target entity&#8217;s <em>aggression<\/em> setting as row search and <em>nodrop<\/em> as column number. Argument is passed to global <em>playmusic()<\/em> command and <em>&lt;iNotch&gt;<\/em> is added to <em>nodrop<\/em> setting to determine column selected next time function is called on target entity. This allows use of obstacle as an interactive switch in general instead of music only. Furthermore, as <em>aggression<\/em> is a spawn parameter, the same item can be used for multiple sets of music with no modifications, variables, or additional scripts. Additionally, <em>soun0005()<\/em> is activated on use, passing the obstacle&#8217;s maximum health as sound group. In the same manor as <em>aggression<\/em> setting, adjusting the <em>heath<\/em> spawn parameter allows choice of sound effect group without any adjustments to model\/scripts.<\/li>\n<li>Step 3 for replacing item based music switching; will be added to global <em>keyall.c<\/em> script.<\/li>\n<\/ul>\n<\/li>\n<li>New entity: data\/chars\/misc\/pickups\/swit0001\n<ul>\n<li>Is an inert obstacle made to replace item based music switching and other types of stage interactivity as noted above.<\/li>\n<\/ul>\n<\/li>\n<li>Sound effects 100_0 and 100_1 (both are radio tuning sound effects) added, and moved to \/swit0001\/sounds folder.<\/li>\n<li>Music switching upgrade complete.<\/li>\n<\/ul>\n<h3>12312010<\/h3>\n<ul>\n<li>New script: z_datk\n<ul>\n<li>Called by most entities as their <em>ondoattack<\/em> script.<\/li>\n<\/ul>\n<\/li>\n<li>Script updates:\n<ul>\n<li>parr0001:\n<ul>\n<li>Retool in progress to take advantage of engine features available as of version 2.955.\n<ul>\n<li>Parry animation.<\/li>\n<li>Air Parry animation.<\/li>\n<li>Pause for Defender and Attacker<\/li>\n<li>Switch direction to face Attacker.<\/li>\n<li>30% MP recovery for Defender.<\/li>\n<li>Engine default collision disabled.<\/li>\n<\/ul>\n<\/li>\n<li>Remaining:\n<ul>\n<li><span style=\"text-decoration: line-through;\">Parry flash.<br \/>\n<\/span><\/p>\n<ul>\n<li><span style=\"color: #008000;\">01012011<\/span><\/li>\n<\/ul>\n<\/li>\n<li>On screen alert?<\/li>\n<li><span style=\"text-decoration: line-through;\">Adjust timing threshold for parry command? Current timing of 0.3 seconds seems too easy at the moment, but test was in controlled environment with single opponent using a predictable attack.<br \/>\n<\/span><\/p>\n<ul>\n<li><span style=\"color: #008000;\">01012011<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Raiden:\n<ul>\n<li>Added Drop Kick.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>01012011<\/h3>\n<ul>\n<li>New Entities:\n<ul>\n<li>bflash: Block flash.<\/li>\n<li>pflash: Parry flash.<\/li>\n<li>fflash: Fire flash.<\/li>\n<li>eflash: Electric flash.<\/li>\n<li>iflash: Indirect flash.<\/li>\n<\/ul>\n<\/li>\n<li>All flash models now located in folder <em>data\/chars\/misc\/effects\/models\/flash<\/em>.<\/li>\n<li>Script updates:\n<ul>\n<li>parr0001:\n<ul>\n<li>Parry flash.<\/li>\n<li>Check for state (can&#8217;t be in pain or blockstun).<\/li>\n<li>Command mapping finalized: Press <span style=\"color: #ff6600;\"><strong>Special<\/strong><\/span> within 0.3 seconds or less before incoming attack makes contact.<\/li>\n<li>On screen prompt?<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Ray:\n<ul>\n<li>Old sound calls replaced with <em>soun0005()<\/em>. Now fully upgraded to self cataloging random sound system.<\/li>\n<li>Aggression speed increased from 130 to 0.<\/li>\n<li>Shock fatality.<\/li>\n<\/ul>\n<\/li>\n<li>Andy Bogard:\n<ul>\n<li>Minor bbox correcting in BLOCK animation.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>01022011<\/h3>\n<ul>\n<li>Andy Bogard\n<ul>\n<li>Additional voice effects.\n<ul>\n<li>3_0<\/li>\n<li>3_1<\/li>\n<li>3_2<\/li>\n<li>7_4<\/li>\n<li>26_2<\/li>\n<li>27_1<\/li>\n<li>28_2<\/li>\n<li>28_2<\/li>\n<li>103_1 (Geki Hishoken 2)<\/li>\n<li>111_0 (&#8220;hatz&#8221;)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>01032011<\/h3>\n<ul>\n<li>Andy Bogard\n<ul>\n<li>Additional voice effects:\n<ul>\n<li>110_1 (Zaneiken 2)<\/li>\n<li>112_0 (&#8220;zan&#8221;)<\/li>\n<li>113_0 (Speaking to Tung Fu Rue)<\/li>\n<li>114_0 (&#8220;Master Tung&#8221;)<\/li>\n<li>115_0 (&#8220;Geese&#8221;)<\/li>\n<li>116_0 (&#8220;san&#8221;)<\/li>\n<li>117_0 (Max attack unleash)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>New entities:\n<ul>\n<li>Hyper sparks:\n<ul>\n<li>Hyper sparks separated back into individual models. Previously a single model (paus0001) contained animations and palettes for all hyper effects. The idea was to reduce memory consumption. While text files are minimal, each model loads its own copy of any given script. However, by separating each into their own models, the sound cataloging system can be implemented in the same manor as normal models (less confusion). Furthermore, this eliminates need for animation scripts within the hyper spark models; only a one time spawn script is needed. The overall result will be slightly greater memory consumption, but with better run time performance. The latter is of greater concern as this module will not run on a memory shy platform anyway due to sheer quantity of animation.\n<ul>\n<li>hype0001<\/li>\n<li>hype0002<\/li>\n<li>hype0003<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>New sound files:\n<ul>\n<li>\/hype0001\/11_0<\/li>\n<li>\/hype0002\/11_0<\/li>\n<li>\/hype0003\/11_0<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>01062011<\/h3>\n<ul>\n<li>Revamp of projectile system in progress to take advantage of <em>ondoattackscript<\/em>:\n<ul>\n<li>Projectile models are to be separated back into individual models (previously they were combined, see hyper sparks in 01032011 entry).<\/li>\n<li>Current projectile function <em>proj0002<\/em> to be greatly simplified, it currently requires 33 parameters.<\/li>\n<li>Addition of numeric indexed global vars (see grapple binding) to track all projectiles?<\/li>\n<li>Engine modification:\n<ul>\n<li>Script access to <em>throwframewait<\/em> property. It is another excellent candidate for Free Variable use.<\/li>\n<li>Script access to custom attack flash. Will greatly simplify and improve efficiency of spawning custom flash entities.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>01112011<\/h3>\n<ul>\n<li>New function: <em>debu0002 void &lt;vEnt&gt;<\/em>\n<ul>\n<li>Uses script access of attack\/bbox properties to display collision boxes during gameplay.<\/li>\n<li>Includes temporary sub function <em>shap0001()<\/em> to perform draw actions.<\/li>\n<\/ul>\n<\/li>\n<li>Model updates:\n<ul>\n<li>Andy Bogard:\n<ul>\n<li>Updated collision boxes using new debug capability for following animations:\n<ul>\n<li>attack2<\/li>\n<li>attack3<\/li>\n<li>attack4<\/li>\n<li>attack5<\/li>\n<li>attack6<\/li>\n<li>attack7<\/li>\n<li>attackbackward<\/li>\n<li>attackdown<\/li>\n<li>attackup<\/li>\n<li>block<\/li>\n<li>blockpain<\/li>\n<li>blockpain3<\/li>\n<li>blockpain4<\/li>\n<li>bpain<\/li>\n<li>burn<\/li>\n<li>cant<\/li>\n<li>charge<\/li>\n<li>chargeattack<\/li>\n<li>death<\/li>\n<li>duck<\/li>\n<li>faint<\/li>\n<li>fall<\/li>\n<li>fall3<\/li>\n<li>fall5<\/li>\n<li>fall6<\/li>\n<li>fall7<\/li>\n<li>fall8<\/li>\n<li>fall9<\/li>\n<li>follow1<\/li>\n<li>follow4<\/li>\n<li>follow5<\/li>\n<li>follow6<\/li>\n<li>follow7 (switched to editor)<\/li>\n<li>follow70<\/li>\n<li>follow71<\/li>\n<li>follow72<\/li>\n<li>follow8<\/li>\n<li>follow80<\/li>\n<li>follow81<\/li>\n<li>follow82<\/li>\n<li>follow83<\/li>\n<li>follow84 (Sidestep Up attack)<\/li>\n<li>follow85<\/li>\n<li>follow86<\/li>\n<li>follow87<\/li>\n<li>follow88 (check purpose)<\/li>\n<li>follow89<\/li>\n<li>follow92<\/li>\n<li>forwardjump<\/li>\n<li>freespecial<\/li>\n<\/ul>\n<\/li>\n<li>Consolidated death animations; removal of following:\n<ul>\n<li>death11<\/li>\n<li>death6<\/li>\n<li>death7<\/li>\n<li>deaht8<\/li>\n<\/ul>\n<\/li>\n<li>Counter block impact remnant removal (long since replaced with dodge and parry).\n<ul>\n<li>follow2<\/li>\n<\/ul>\n<\/li>\n<li>Tall target alternate for Shiranui Spider Clutch removed. Updated bind allows auto adjusting to opponent&#8217;s height.\n<ul>\n<li>follow3<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>01122011<\/h3>\n<ul>\n<li>Model updates:\n<ul>\n<li>Andy Bogard:\n<ul>\n<li>Updated collision boxes using new debug capability for following animations:\n<ul>\n<li>freespecial10\u00a0 (Shoryudan) *LF<\/li>\n<li>freespecial12 (Zaneiken)<\/li>\n<li>freespecial13 (Shippu Oken)<\/li>\n<li>freespecial14 (Gen&#8217;ei Shiranui)<\/li>\n<li>freespecial15 (Gen&#8217;ei Shiranui &#8211; Shimo Agito)<\/li>\n<li>freespecial16 (Gen&#8217;ei Shiranui &#8211; Uwa Agito)<\/li>\n<li>freespecial17 (Yami Abse Geri)<\/li>\n<li>freespecial18 (Cho Reppa Dan)<\/li>\n<li>freespecial19 (Bakushin)<\/li>\n<li>freespecial2 (Plane Force Up)<\/li>\n<li>freespecial21(Ku Bakushin)<\/li>\n<li>freespecial3 (Plane force Down)<\/li>\n<li>freespecial4 (Plane shift attack up)<\/li>\n<li>freespecial40 (Low Step Attack)<\/li>\n<li>freespecial41 (Low Dash Attack)<\/li>\n<li>freespecial42 (Low Step Attack II &#8211; Low side kick)<\/li>\n<li>freespecial43 (Low Step Attack III &#8211; Low palm strike)<\/li>\n<li>freespecial5 (Plane shift attack Down)<\/li>\n<li>freespecial6 (Hishoken)<\/li>\n<li>freespecial7 (Geki Hishoken)<\/li>\n<li>freespecial8 (Ku Ha Dan)<\/li>\n<li>freespecial9 (Zaneiken)<\/li>\n<li>get<\/li>\n<li>grab<\/li>\n<li>grabattack<\/li>\n<li>grabattack2<\/li>\n<li>grabbed<\/li>\n<li>grabup<\/li>\n<li>idle<\/li>\n<li>idle2<\/li>\n<li>idle3<\/li>\n<li>idle4<\/li>\n<li>jump<\/li>\n<li>jumpattack<\/li>\n<li>jumpsttack2<\/li>\n<li>jumpsttack3<\/li>\n<li>jumpdelay<\/li>\n<li>jumpforward<\/li>\n<li>jumpland<\/li>\n<\/ul>\n<\/li>\n<li>Low Dash Attack is now shoulder ram. Old low dash attack (a lunging low palm strike) will be used for SDM attack.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>01132011<\/h3>\n<ul>\n<li>Model updates:\n<ul>\n<li>Andy Bogard:\n<ul>\n<li>Updated collision boxes using new debug capability for following animations:\n<ul>\n<li>pain<\/li>\n<li>pain2<\/li>\n<li>run<\/li>\n<li>runattack<\/li>\n<li>runjump<\/li>\n<li>runjumpattack<\/li>\n<li>runslide<\/li>\n<li>slide<\/li>\n<li>special2<\/li>\n<li>walk<\/li>\n<\/ul>\n<\/li>\n<li>Sidesteps now have invincible start up.<\/li>\n<\/ul>\n<\/li>\n<li>Ray\n<ul>\n<li>Updated collision boxes using new debug capability for following animations:\n<ul>\n<li>attack1<\/li>\n<li>attack2<\/li>\n<li>attack3<\/li>\n<li>attack4<\/li>\n<li>attackbackward<\/li>\n<li>attackdown<\/li>\n<li>attackup<\/li>\n<li>blockpain<\/li>\n<li>blokcpain2<\/li>\n<li>blockpain3<\/li>\n<li>blockpain4<\/li>\n<li>bpain<\/li>\n<li>burn<\/li>\n<li>chargeattack (wheel kick)<\/li>\n<li>fall<\/li>\n<li>fall2<\/li>\n<li>fall3<\/li>\n<li>fall5<\/li>\n<li>fall8<\/li>\n<li>fall9<\/li>\n<li>slide<\/li>\n<\/ul>\n<\/li>\n<li>Renamed follow40 to Slide.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>01172011<\/h3>\n<ul>\n<li>Color separation in progress for Ray model. Original model used 16 color sprites with white as a highlight and inappropriate color sharing. New color layout provides 64 colors, separated into individual groups for hair, skin, shirt, pants, gloves and shoes.\n<ul>\n<li>Complete:\n<ul>\n<li>aapa0000<\/li>\n<li>aapa0011<\/li>\n<li>0001 through 0035<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>02092011<\/h3>\n<ul>\n<li>Ray McDougal color separation ballooned into <a href=\"?p=1276\">overall animation and sprite improvement project<\/a> and is now complete.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Progress notes for Fatal Fury Chronicles project.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[71],"tags":[28,27,59,12,232],"class_list":["post-1091","post","type-post","status-publish","format-standard","hentry","category-technology-temerity","tag-gaming-beat-em-up","tag-coding","tag-gaming-fatal-fury","tag-gaming-homebrew","tag-applications-openbor"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5lNM5-hB","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/posts\/1091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/comments?post=1091"}],"version-history":[{"count":57,"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/posts\/1091\/revisions"}],"predecessor-version":[{"id":6232,"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/posts\/1091\/revisions\/6232"}],"wp:attachment":[{"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/media?parent=1091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/categories?post=1091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.caskeys.com\/dc\/wp-json\/wp\/v2\/tags?post=1091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}