Advertisement
ZoriaRPG

Change Log Beta 52/5

Jan 14th, 2017
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.27 KB | None | 0 0
  1. //Beta 1
  2.  
  3. Added new ZScript commands:
  4. Game->CappedFPS
  5. OverlayTile(int first, int second)
  6. Game->GetDMapScreenDoor
  7. Game->SetDMapScreenDoor
  8. Game->GetDMapScreenState
  9. Game->SetDMapScreenState
  10. Added using bitmaps to Screen->Quad as textures.
  11. Set header version to 0x254.
  12. Flaged as a beta in the header.
  13.  
  14. //Beta 2
  15. Updated Build to 30, and set version as 254
  16. Fixed missing entry for THROTTLEFPS in the bytecode.
  17. Tried addin additional bitmap draw mode rotate_sprite_trans: This allegro function call would not compile. We need to udate allero.
  18. Added constant TEX_BITMAP to std_constants
  19. Created test quests for OverlayTile, and Game->CappedFPS
  20.  
  21. //Beta 3
  22. Fixed build ID and changed to 31.
  23. Corrected OOverlayTile
  24. Updated some instructions.
  25. Fixed minor oversight in std_functions
  26.  
  27. //Beta 4
  28. Added tilde key checking to CappedFPS
  29.  
  30. //Beta 5
  31. Began implementing DrawBitmapEx
  32.  
  33. //Beta 6
  34. Implemented DrawBitmapEX, with limited modes.
  35.  
  36. //Beta 7
  37. Added additional modes to DrawBitmapEX; updated from 13 to 16 args.
  38. Modified Quad (bitmaps as textures), so it might work now.
  39. Updated ZScript docs to v0.7.6 to include these additions.
  40.  
  41. //Beta 8
  42. Tried merging the script drawing changes from Gleeok. This did not go well. (WHATNO8)
  43.  
  44. //Beta 9
  45. This is forked from Beta 7, not Beta 8.
  46. Merged some drawing components from allegro 4.4.2 to our 4.2 build.
  47. This adds the ability to call draw_sprite_ex, which is not ordinarily in allegro 4.2.
  48. DrawBitmapEx now has some additional modes enabled.
  49. Added BitmapQuad(), but it does not work rightly, and it may be unstable.
  50. Tried to permit reading the entire screen as a render source with DrawBitmapDX, but this did not work.
  51. Updated ZScript docs to v0.7.7 to include these additions.
  52.  
  53. //Beta 10
  54. Added Link->Diagonal and Link>BigHitbox
  55. Updated the ZScript docs to v0.7.8 to include these additions.
  56.  
  57. Beta 11
  58. Added ->ID to itemdata
  59.  
  60. //Beta 12
  61. Added an entire list of variables to itemdata, as follows:
  62. //These correspond to the ten pulldown values on the 'data' page.
  63. Misc1, Misc2, Misc3, Misc4, Misc5, Misc6, Misc7, Misc8, Misc9, Misc10
  64.  
  65. //These correspond to the ten pulldown values on the 'action' page.
  66. Attribute1, Attribute2, Attribute3, Attribute4, Attribute5, Attribute6, Attribute7, Attribute8, Attribute9, Attribute10
  67.  
  68. Modifier //The Link Tile Modifier
  69. Script //The Action Script
  70. PScript //The Pickup Script
  71. MagicCost //The MP Cost of the item
  72. MinHearts //The minimum hearts to pick up the item (e.g. swords in Z1)
  73. Tile //The tile used by the item
  74. Flash //Flash, and two-hand.
  75. CSet //The item CSet
  76. AFrames //The number of animation frames
  77. ASpeed //The animation speed
  78. Delay //The animation delay
  79. Updated the ZScript docs to v0.7.9 to include these additions.
  80.  
  81. //Beta 13
  82. Added the missing itemdata flags: Combine, Downgrade, KeepOld, RupeeCost, Edible, GainLower, Flag1, lag2, Flag3, Flag4, Flag5, and 'Unused'.
  83. Updated the ZScript docs to v0.8.0 to include these additions.
  84.  
  85. //Beta 14
  86. Expanded Link->Misc[16] to Link->Misc[32]
  87. Expanded lweapon->Misc[16] to lweapon->Misc[32]
  88. Expanded eweapon->Misc[16] to eweapon->Misc[32]
  89. Expanded item->Misc[16] to item->Misc[32]
  90. Expanded npc->Misc[16] to npc->Misc[32]
  91.  
  92. Modified the ZQuest 'Item Editor' so that no options are greyed out (disabled), allowing the user to set values to work in conjunction with the new itemdata entries, in scripts.
  93. Updated zscript.txt to v0.8.1 to reflect these changes.
  94.  
  95. //Beta 15
  96. Added public link var zstringwarp , and an if(zstringwarp) statement to the Link class to support warping by string. -ZoriaRPG
  97. Added SCCs for Warp, Warp2, and SetScreenD to zstrings. -Dimentio
  98. Wrote functions for SCC cases MSGC_WARP, MSGC_WARPSQ, MSGC_SETSCRD. -ZoriaRPG
  99.  
  100. Added Link->UseWarpReturn to ZScript. -ZoriaRPG
  101. Added handlers in the Link class: setWarpReturnSquare(int), getWarpReturnSquare(), getDirectItem(), getDirectItemA(), getDirectItemB(). -ZoriaRPG
  102. Added Link->UsingItem, Link->usingItemA, Link->UsingItemB to ZScript. -ZoriaRPG
  103. ->These should return the item number being used, or -1.
  104. ->Setting these does nothing at present. The internal variables appear to never be set?!
  105.  
  106. //Beta 16
  107. Added Link->WarpSound : The user may set this, and if it is not 0, this sound plays during Link->Warp and Link->PitWarp.-ZoriaRPG
  108. Worked on do_warp()
  109. Added debug info to do_warp
  110.  
  111. //Beta 17
  112. Stopped side warps playing warp sfx. -ZoriaRPG
  113. Added Link->PlayWarpSound : This enables/prevents a sound from playing even if set. Should override for side warps, etc.
  114. Fixed Link->PlayWarpSound. Now it returns properly. -ZoriaRPG
  115. Added SCC for Warp without a return square. -ZoriaRPG
  116. How the hell do we set tmpscr->warpreturnc or why is wrindex=(tmpscr->warpreturnc>>(8+(index*2)))&3; not working?!
  117.  
  118. New SCCs are:
  119.  
  120. /23/dmap/screen - Warps to dmap, screen
  121. /24/dmap/screen/return - Warps to dmap, screen, using return square 'return'; but the return square thing is not working.
  122. /26/reg/value - Sets Screen->D[reg] = value.
  123.  
  124. Added bool isscriptedwarp and associated handlers to link.h and link.cpp. ( LinkClass::getScriptedWarp(), etc.)
  125. Modified do_warp() and dowarp() to use isscriptedwarp for how warps by script set wtSCROLL warpreturnx[] and warpreturny[], thus:
  126. if(get_bit(quest_rules,qr_NOARRIVALPOINT))
  127. {
  128. if ( getScriptedWarp() ){
  129. setScriptedWarp(false);
  130. wrx=tmpscr->warpreturnx[wrindex];
  131. wry=tmpscr->warpreturny[wrindex];
  132. }
  133. else{
  134. wrx=tmpscr->warpreturnx[0];
  135. wry=tmpscr->warpreturny[0];
  136. }
  137. }
  138.  
  139. //Beta 18
  140. Additional work on warping.
  141. The SCC warps are buged. If the present screen is a screen 8 cave, Link warps into unknown space. -ZoriaRPG
  142. Added checks for isscriptedwarp to LinkClass::dowarp(int,int)
  143.  
  144. //Beta 19
  145. Added Link->WarpEffect to set an in-built effect for Link->Warp -ZoriaRPG
  146. Added Screen->ZapIn(), Screen->ZapOut, Screen->WavyIn(), Screen->WavyOut, and Screen->OpeningWipe -ZoriaRPG
  147. These replicate the animations from tilewarps, to call at any time (without warping).
  148. Fixed return squares for Link->Warp
  149. Added additional SCCs for warping, and rewrote some of the old ones.
  150. Renumbered SCCs for warping (31, 32, 33, 34) and Scren->D (40)
  151.  
  152. //Beta 20
  153. Partially rewrote LinkClass::dowarp() to fix sound and dest issues.
  154. Renamed bool Link->PlayWarpSound to Link->SideWarpSounds
  155. Added ClearSCCWarpValues and used it to clean up SCC warps.
  156. Added LinkClass::playpitwarpsfx and bool Link->PitWarpSounds to ZScript, to determine if pit warps play a sound
  157. Added bool LinkClass::ispit , LinkClass:: void getIsPitWarp, bool setIsPitWarp.
  158. These are used to determine if the warp is a ptwarp after all the other vars clear.
  159. We need to rewrite PitWarp; eh?
  160. All new ZScript features, and warp sounds work.
  161. SCC Warp features still require testing, and debugging.
  162. Updated zscript.txt and 2.54_New_Zscript.txt to reflect the changes and additions.
  163. Updated 'std_constants' with new WARPFX_* values.
  164.  
  165. PitWarpSound and SideWarpSound seem to be joined somehow. Check to see if any of the EVENTS in Link.cpp might
  166. be causing this, such as the event that calls dowarp().
  167.  
  168. Discovered that zlaunch-w.exe will crash if zquest-w is not in its working path. -ZoriaRPG
  169.  
  170. //Beta 21
  171. I appear to have fixed all of the warp sound conflicts, so we shall see what happens. -ZoriaRPG -ZoriaRPG 14/Dec/2016
  172. New public build.
  173.  
  174. //Beta 22
  175. Saffith pointed out that SCC numbering was overflowing into ASCII escape char space.
  176. Fixed new SCC numbering, and rearranged.-Z 15/Dec/2016
  177. Changed the SCC IDs for new SCCs as follows:
  178. \18 Screen->D
  179. \19 SetScreenD(screen,reg,value)
  180. \23 SetDmapScreenD(dmap,screen,reg,value)
  181.  
  182. \26 Warp(dmap,screen)
  183. \27 Warp(dmap,screen,return)
  184. \28 Warp(dmap,screen,return,sound)
  185. \29 Warp(dmap,screen,return,sound,effect)
  186. Added Link->Eaten, Link->Extend, Link->SetTile(int,int,int,int) -Z 15/Dec/2016
  187. Added constants for LSPRITE_* (Link Sprite) and cleaned some things in std_constants.
  188.  
  189.  
  190. //Beta 23
  191. Added temporary stuff for Link->SetExtend(int,in6t,int), Link->GetExtend(int,int) -Z
  192. Fixed Link->Extend not setting all dirs. -Z 15/Dec/2016
  193. I suggest droping the SCC for GetScreenD, as Screen->D and DMapScreenD should suffice. -Z
  194. I would also cut two of the warp functions to save space. -Z
  195. Link->SetTile(i,i,i.i) isn't workin. Saffith says it's because of how Link is drawn. This may be true,
  196. but I suspect that my stack functions are also rubbish. -Z 16/Dec/2016
  197. These may need to wait until 2.55, as there are more important facets to worry about, when I'm wasting
  198. 30+ hours recompiling to test changes. -Z 16/Dec/2016
  199. I'd still like to partially rewrite pit and side warps, and give each a unique sound var, so that I can
  200. dispose of this boolean flag and shared soud silliness. -Z
  201. Disabled the ability to call Link->GetExtend(i,i) and Link->SetExtend(i,i,i). -Z 16/Dec/2016
  202. These were returning errors:
  203. Couldn't find function label #1820
  204. Couldn't find function label #1821
  205. Link->SetTile started generating a SP error. Calling it would hang ZC. Tried a new fix.-Z 16/Dec/2016
  206. Updated docs.
  207.  
  208.  
  209. //Beta 24
  210. Worked on Link->SetTile, Link->GetExtend, Link->SetExtend -Z
  211.  
  212. //Beta 25
  213. Chaned Link->SetExtend() to Link->GetLinkExtend() and Link->GetExtend() to Link->SetLinkExtend().
  214. This should prevent issues with internal labels. -Z
  215.  
  216. //Beta 26
  217. Some minor opcode revisions for GetLinkExtend and SetLinkExtend. Note that they still are not correct,
  218. but they no longer do *nothing at all*. -Z
  219. Updated docs.
  220. Public release.
  221.  
  222. //Beta 27
  223. Worked on Set/GetExtend opcodes and entries. Revised get_link_extend to be a binary opcode function. -Z
  224. Started working on ten script weapon defs. Added enedata_defense3_list, and editor panels to zq_custom.cpp and expanded the
  225. edefd enum for all ten in addition to generic script in zdefs.h. Nothing should be different about guys./h/cpp/.
  226. Edited the jproc dialogue boxes, and spacing for the third defs tab is less than the other two.
  227. -->This is because the other pages fit only nine types per tab.
  228. I should just enlarge the window. -Z
  229. Note: I have no updated the weapon damage checking to *do anything with* these new fields, but the user should
  230. be able to set the values.
  231. !Adding 'Double Damage' to the list of defense effects would also be nice.
  232.  
  233. Added scriptdefense[] to npcs, and the related ZScript stuff as n->ScriptDefense[10].
  234. Fixed npc->Misc, *weapon->Misc, item->Misc, and Link->Misc in GlobalSymbols.cpp.
  235. ->I forgot to set their size to 32 there. Fixed now. -Z
  236. Added a bunch of stuff to zq_custom.cpp. Might work now.
  237. Modified zq_class.cpp, zdefs.h, guys.h,
  238. Added extra define and enum to zdefs.h for script weapon types.
  239. Added for loops to write to the new array.
  240. -ZoriaRPG 18-Dec-2016
  241.  
  242. For some reason, int writeguys(PACKFILE *f, zquestheader *Header) is preventing npcs from spawning
  243. with the new scriptdefense[] values?
  244.  
  245. Something is clearly amiss in either zq_class.cpp or zq_custom.cpp, where the values are set.
  246.  
  247. //Beta 28
  248. Disabled writing scriptdefense[] to the packfile, to allow NPCs to spawn, while we figure out why this is happening. -Z
  249. Updated docs.
  250.  
  251. //beta 29
  252.  
  253. Added the script defs to the packfile. Saving/Reading them caused massive corruption. -Z
  254.  
  255. //Beta 30
  256. Disabled saving script defs set from the editor.
  257. They still work when set by script, but they are not retained with the quest (yet),.. -Z
  258. Implemented enemy weapon checks for script types in guys.cpp with new functions checking them. -Z
  259. Setting n->ScriptDefense[] works perfectly, although we will need to add a quest version check
  260. to prevent older quests that used the generic defense from obeying segregated defense rules. -Z
  261. Tested npc->ScriptDefense[] and verified that it works. -Z
  262. Fixed the item editor field for 'Sound' to display properly. -Z
  263.  
  264. //Beta 31
  265. Began adding Link->Action(LA_CASTING)
  266. Worked on enemy editor stuff.
  267.  
  268. //Beta 32
  269. Reverted the enemy editor changes.
  270. Trying again.
  271.  
  272. //Beta 33
  273. //Based on Beta 30 (Stable)
  274. Added some casting routines, but these freeze Link, so I disabled them for the present. -Z
  275. Updated zquest.txt to fix a typo in Misc. Colours. -Z
  276.  
  277. //Beta 34
  278. Added new definitions for reading the packfile. if V_GUYS is > 24.
  279. Updated V_GUYS to 25
  280. Fixed the packfile issues in qst.cpp, zq_class.cpp, and finished adding the scrit defences to the ZQ Editor. -Z
  281. Setting the ten script type defences now works as intended, both from the editor, and from scripts.
  282. Requires testing old quests, to see if anything broke. -Z 19/Dec/2016
  283. Added a method of checking if an old quest is running to deferr the script type defence checks to the generic edefsSCRIPT.
  284. THis requires testing. -Z 19/Dec/2016
  285. Merged the 2.50.3 RC1 allegro config files and such into 2.54. -Z 19/Dec/2016
  286. New public build candidate.
  287. Updated docs: Updated zquest.txt with enemy editor changes. -Z
  288.  
  289. //Beta 35
  290. Modified the packfile reading so that enemies from older quests will forward their defense[edefSCRIPT]
  291. setting to each of the ten scripdefense[n] indices. This means that in the enemy editor, loading an old
  292. quest will push the old values to the new indices. -Z 19/Dec/2016
  293. Renamed std_constants_2.50.2.zh to std_constants_2.54.zh -Z
  294. Renamed std_f_2.50unctions.2.zh to std_functions_2.54.zh -Z
  295. Added setting to std.cfg to disable mods to OnSidePlatform(), despite that the revised function isn't in this build.
  296. Fixed AdjacentCombo(int,int,int) in std_functions. -Z
  297. New public build candidate.
  298. SetComboSolid is choosing the wrong combos. -Mitsuukara 20/Dec/2016
  299. Verified that this also occurs in 2.50.3RC1 - Mitsukara
  300.  
  301. //Beta 36
  302. Rewrote Link->SetTile(), Link->SetLinkExtend(), Link->GeLinkExtend() -Z 20/Dec/2016
  303. Removed GETLINKEXTEND and LINKSETTILE from ZASM . The getter for Link*Extend now uses the same reg
  304. as the setter; both are SETLINKEXTEND. Likewise, LINKSETTILE is now SETLINKTILE and the ZScript
  305. function is now Link->SetLinkTile(). -Z
  306. I might move these from Link-> to Game->, if they ever work.
  307.  
  308. //Beta 37
  309. Finished implementin Link->SetLinkExtend(int sprite, int dir, int extend) and Link->GetLinkExtend(int sprite, int dir)
  310. Started revising Lnk->Extend , and added a function to Link.cpp (disabled at present) to convert an action to a sprite.
  311. See 'ZScript.txt' for more details. -Z
  312. Revised Link->SetLinkTile(), and started adding Link->GetLinkTile().
  313. These are related to the tile used by sprites, not Link->Tile clones. SetLinkTile still does nothing. -Z
  314. I might expand the D# script args from 8 to 16 next. The stak registers were reserved for that many. -Z
  315. Completed Allegro 4.4.2 migration for Linux. There was a missing 'optional' audio lib that should fix
  316. the sound issues. -Grayswandir. 20/Dec/2016
  317. The Windows ag442 stuff is nearly done, too. -Z 20/Dev/2016
  318.  
  319.  
  320. //Beta 38 (uncompiled as of these entries)
  321. //Added all this nonsense to the Link class for handling sounds, and for handling extend
  322. //Note that as of b38, the pit and side warp sound variables do nothing.
  323. //I need to set them up in the warp functions, when I go over them again.
  324.  
  325. int getSprite()
  326. void setSprite(int action)
  327. int pitwarpsfx; //SFX for pit warps, separate from tile, side
  328. int sidewarpsfx; //SFX for side warps, separate from tile, pit.
  329. int pitwarpeffect; //Visual effect
  330. int sidewarpeffect; //Visual effect
  331. int getSideWarpSound(); //Link->SideWarpSound
  332. void setSideWarpSound(int sound);
  333. int getPitWarpSound(); //Link->PitWarpSound
  334. void setPitWarpSound(int sound);
  335. int getPitWarpEffect();
  336. void setPitWarpEffect(int fx);
  337. int getSideWarpEffect();
  338. void setSideWarpEffect(int fx);
  339.  
  340. These are for:
  341.  
  342. Link->PitWarpSound PITWARPSFX
  343. Link->PitWarpEffect PITWARPVISUAL
  344. Link->SideWarpSound SIDEWARPSFX
  345. Link->SideWarpEffect SIDEWARPVISUAL
  346.  
  347. Plus their ZScript accessors and GLobalSymbols.cpp Link table entries.
  348.  
  349. Added to link.cpp and link.h:
  350.  
  351. //Set the button items by brute force
  352. void setAButtonItem(int itm);
  353. void setBButtonItem(int itm);
  354.  
  355. Addedto ZScript::
  356.  
  357. Link->SetItemSlot(int item, bool setA) SETITEMSLOT
  358. This attempts to force-set the item in a button slot to 'item'.
  359. If bool setA is true, it tries to set item A, otherwise itwm B
  360.  
  361. Link->SetItemA(int item) GAMESETA
  362. This attempts to force-set the item in Slot A to 'item'
  363.  
  364. Link->SetItemB(int item) GAMESETB
  365. This attempts to force-set the item in Slot A to 'item'
  366.  
  367. All the SetItem* functions cause stack overflows. -Z 20/Dec/2016
  368. Updated docs. New public build candidate.
  369.  
  370. //Beta 39
  371. Startedadding additional definitions for defence categories/effects:
  372. ed2x, //Double damage
  373. ed3x, //Triple Damage
  374. ed4x, //4x damage
  375. edLEVELDAMAGE, //Damage * item level
  376. edLEVELREDUCTION, //Damage / item level
  377. edFREEZE, //Freeze solid
  378. edSPLIT, //causes the enemy to split if it has a split attribute
  379. edREPLACE, //replaced by next in list?
  380. edLEVELCHINK2, //If item level is < 2: This needs a weapon variable that is set by
  381. edLEVELCHINK3, //If item level is < 3: the item that generates it (itemdata::level stored to
  382. edLEVELCHINK4, //If item level is < 4: weapon::level, or something similar; then a check to
  383. edLEVELCHINK5, //If item level is < 5: read weapon::level in hit detection.
  384. edCHINK10, //If damage is less than 10
  385. edTRIGGERSECRET, //Triggers screen secrets.
  386. I may add more, and I'm uncertain if some of these are truly feasible. -Z 21/Dec/2016
  387.  
  388. //Beta 39.2
  389. Tried migratin to allegro 4.4.3 (that is a 3, not 4.4.2; this exists). I was able to get ZC and ZQ to compile.
  390. ZQuest ran, but ZC crashed. I suspect this is to do with the audio libs, as it crashed just as it was trying to load
  391. the opening theme music.
  392. Skipping the opening logo prevented it from crashing.
  393.  
  394. This was a test of ZC in allegro 4.4.3
  395. Building this worked, but produced a new crtical ug. Playing any audio other then MIDIs or WAvs seems to crash ZC.
  396. Loading a custom quest worked, but 1st.qst crashed ZC.
  397. The keyboard bug in ZQ is now fixed, by allegro 4.4.3.
  398. The blue flicker bug in ZC fullscreen is fixed by allegro 4.4.3.
  399. Alt-tabbing out of fullscreen ZC distorts the resolution.
  400. Note: Allegro 4.4.3 uses DirectX 8.
  401.  
  402. //Beta 40
  403. This is a build using allegro 4.2.x, branched from beta 38! -Z
  404. Added new script weapon defence outcomes:
  405. -Z 22/Dec/2016
  406. These are known to work:
  407.  
  408. edTRIGGERSECRETS, //Triggers screen secrets. (verified to work)
  409. edCHINKL10, //If damage is less than 10 (verified to work)
  410.  
  411. These are untested:
  412.  
  413. ed2x, //Double damage
  414. ed3x, //Triple Damage
  415. ed4x, //4x damage
  416. edHEAL, //recover the weapon damage in HP
  417.  
  418. These do nothing at present:
  419.  
  420. edLEVELDAMAGE, //Damage * item level
  421. edLEVELREDUCTION, //Damage / item level
  422. edFREEZE, //Freeze solid
  423. edSPLIT, //causes the enemy to split if it has a split attribute
  424. edREPLACE, //replaced by next in list?
  425. edLEVELCHINK2, //If item level is < 2: This needs a weapon variable that is set by
  426. edLEVELCHINK3, //If item level is < 3: the item that generates it (itemdata::level stored to
  427. edLEVELCHINK4, //If item level is < 4: weapon::level, or something similar; then a check to
  428. edLEVELCHINK5, //If item level is < 5: read weapon::level in hit detection.
  429. edSHOCK, //buzz blob
  430. edEXPLODESMALL, //ew bombblast
  431. edEXPLODELARGE, //super bomb blast
  432. edSTONE, //deadrock
  433. edBREAKSHIELD, //break the enemy shield
  434. edRESTORESHIELD, //if the enemy had a shield, reset it
  435. edSPECIALDROP, //but where to define it?
  436. edINCREASECOUNTER, //but where to define the counter
  437. edREDUCECOUNTER, //same problem
  438. edEXPLODEHARMLESS, //boss death explosion
  439. edKILLNOSPLIT, //If sufficient damage to kill it, a splitting enemy just dies.
  440.  
  441. Added Link->ItemA, and Link->ItemB
  442. Checking these willr eturn the item in either slot.
  443. Setting them will force-set the item for either slot, ignoring if it is in inventory or on the subscreen.
  444. Setting this will also ignore the A-button quest rule.
  445. These are intentional effects.
  446.  
  447. Fixed Link->Equipment -Z 23/Dec/2016
  448. It should now be possible to write to this field. This DOES NOT IGNORE if an item is in inventory.
  449. This obeys the quest rule regarding A-button items.
  450.  
  451. Modified Link->SetItemSlot() -Z 23/Dec/2016
  452. The args are:
  453. Link->SetItemSlot(int itm_id, bool a_button, bool force)
  454. where 'itm_id' is the item, bool a_button is true if setting button a, false for b, and 'force'
  455. determines if we override the quest rule, or check if the item is in inventory.
  456. This is still not quite behaving. Are the values wrong, coming off the stack? -Z 23/Dec/2016
  457.  
  458. Link->SetItemA() and Link->SetItemB() from Beta 38 are to be removed. -Z
  459.  
  460. Reserved 16 registers so that Grayswandir has room to insert new script commands and variables.
  461. Updated the Beta ID to 40. -Z 23/Dec/2016
  462.  
  463. Began adding function pointers to ZScript. -Grayswandir (not implemented). 23/Dec/2016
  464.  
  465. TO-DO:
  466. * Change info window to report the Beta ID instead of the Build ID. -Changed -Z.
  467. * Add a function to read V_FFSCRIPT from he quest header.
  468. * Add a version check to COMBOSDM that reads the header. -Used the ZC version in the header, for now. -Z
  469.  
  470. Updated docs. -Z 24/Dec/2016
  471. New public build candidate. -Z 24/Dec/2016
  472.  
  473. Trigger Secrets and Block if < 10 work. -Mitsukara 22/Dec/2016
  474. 2x, 3x, and 4x def results do not work. -ywkls 24/Dec/2016
  475.  
  476. WarpEffect broke betweenb19 and b20, and we just now noticed ?! -Z
  477. Wedon';t have a fliping archive of b19 either !!!!!!!!!!!!!!?
  478. That does it.. I just need to rewrite dowarp() -Z 24/Dec/2016
  479.  
  480. //Beta 41
  481. Restored warp effects. This likely broke pit warp andside warp sounds, but we need to rewrite those anyway. -Z
  482. Warp returns verified to work. Warp effects verified to work. -Z
  483. All is fixed now, or so it seems. The problem was an if statement, where an else if was needed. -Z 24/Dec/2016
  484.  
  485. Might have found a bug with Screen Freeze ( Except FFCs ) combos. Warping while they are on the screen (as ffc->Data)
  486. seems to cause memory corruption of some sort. This may also be true in 2.50.3, or earlier. I'm not even certain what
  487. is happening. -Z 24/Dec/2016
  488.  
  489. We need to add a zscript global boolean 'Prevent Subscreen from Falling'. -Z
  490.  
  491. //Beta 42
  492. Fixed label for SIDEWARPVISUAL in ffasm.cpp -Z
  493. Added Link->WalkSprite : THis is a testing setter to check the effects of writing to the sprite values. -Z
  494. Added function pointers using @identifier to the parser. -Grayswandir 24/Dec/2016
  495. Added comment blocks to the parser, using the book method. -Grayswandir 24/Dec/2016
  496. Worked on Link->SetLinkTile() ...it might work.
  497. Added 14 total setters to manually set each sprite for Link. They are:
  498. Link->WalkTile, SwimTile, DiveTile, SlashTile, JumpTile, ChargeTile, StabTile, CastingTile, PoundTile, FLoatTile,
  499. Hold1LandTile, Hold2LandTile, Hold1WaterTile, Hold2WaterTile -Z 25/Dec/2016
  500. THese otherwise work like Link->Extend, in that they set the tile for a given sprite based on Link's present direction.
  501. I have yet to add getters, those will coe after I retest this nonsense. Let's see if that function works, first. -Z 25/Dec/2016
  502. We need to be able to set the animation style, too. -Z 25/Dec/2016
  503. Added getters for the 14 Link Tile testing variables. -Z 25/Dec/2016
  504.  
  505. //Beta 43
  506. Implemented Link->HitWidth, Link->HitHeight, Link->HitXOffset, Link->HitYOffset -Z 25/Dec/2016
  507. Added Link->InvFrames: This returns if Link was hit, the number of inv frames remaining, and can be set from 0 to 214747
  508. to grant, edit, remove, increase, or reduce the number of frames. -Z 25/Dec/2016
  509. Added Link->Animation: THis sets the animation style for Links sprites, and will return the present setting. -Z 25/Dec/2016
  510. Added Link->WalkASPeed and Link->SwimASpeed: These return or set the animation speed for Link's walking, or swim sprites. -Z 25/Dec/2016 -Z
  511. Still need to add a way to prevent the subscreen from falling on PressStart. -Z 25/Dec/2016
  512.  
  513. * ( Done ) Need to add a way to prevent invincible link from flickering/flashing. -Z 26/Dec/2016
  514. Added int Link->HurtSound : Set to a SFX to use for Link being hurt. -Z 26/Dec/2016
  515. Defaults to the internal SFX_OUCH if never set, but does not reset. -Z 26/Dec/2016
  516. Added bool Link->InvFlicker : Set false to disable flickering/flashing for invincible Link. -Z 26/Dec/2016
  517.  
  518. Link->HitWidth works perfectly. -Z 26/Dec/2016
  519. Link->HitHeight is still not right. t is possible to adjust with HitYoffset, but not fun. -Z 26/Dec/2016
  520. Link->HitXOffset should work. -Z 27/Dec/2016
  521. Added muple declarations to the parser ( int a, b = 30, d = 16 ). -G 27/Dec/2016
  522. This crashes ZC if done at a global scope. -Z 22/Dec/2016
  523. More work on function pointers, and types. -G 27/Dec/2016
  524. Need to add n->Misc[], and i->Misc[] values to the enemy and item editor, to allow setting the zscript->Misc[indxes]
  525. from the editor in advance. -Z 27/Dec/2016
  526. Need to expand InitD[8] to [16]. -Z 27/Dec/2016
  527. Need to add / implement ZOffsets -Z 27/Dec/2016
  528.  
  529. //Beta 44
  530. Added Game->DisableActiveSubscreen -Z 27/Dec/2016
  531. Array sizes can now be declared with maths. -G 27/Dec/2016
  532. Added lweapon->Range ; only for boomerangs. -Z 27/Dec/2016
  533. Added Game->Version, Game->Build, and Game->Beta to return version IDs in ZScript. -Z 27/Dec/2016
  534. Fixed array scoping issues when nesting array calls: int b = arr1[ arr2[ arr3[0] ] ] ) -G 27/Dec/2016
  535. This crashes ZC if done at a global scope. -Z 27/Dec/2016
  536. Bug: Link flickers perpetually if Link->InvFlicker is set true. -Z 27/Dec/2016
  537. Parser changes seem to cash ZC whenever a value is assigned to a gd register. :( -G 27/Dec/2016
  538. Fixed Link flickering. -Z 27/Dec/2016
  539. Updated docs. -Z 26/Dec/2016
  540. Updated std_constants -Z 27/Dec/2016
  541. May have fixed parser issues for the next build. -G 27/Dec/2016
  542.  
  543. //Beta 45
  544. Fixed global declarations and global var usage with the parser changes. -G 28/Dec/2016
  545. Would be nice to be able to reference array pointers at a global scope.
  546. e.g. int arr[20]; int arr2[]={arr}; -Z
  547. Added int npc->Invincible (superman), int npc->InvFrames (hclk) , bool npc->HasItem, and bool npc->Ringleader. -Z
  548. THe parser changes are bugged. Attempting to compile a simple script flooded the parser window with:
  549. 'INTERNAL ERROR: COULDN'T FIND STACK OFFSET FOR VARIABLE'. -Z 28/Dec/2016
  550. I reverted the parser to that of beta 42, prior to adding in the array and var declaration changes. -Z
  551. --> This means that declaring array sizes with maths, and declaring vars on one line, are both disabled. -Z
  552. Fixed enemy defence results: Double Damage, Triple Damage, Quadruple Damage. -Z 28/Dec/2016
  553. Added 'Debug Console' menu option to the Misc menu in ZC. -Z 28/Dec/2016
  554. Fixed enemy defence outcome 'Heal', and changed it to 'Enemy gains HP = weaon damage. It does not obey MaxHP! -Z 28/Dec/2016
  555. Removed Link->UsingItemA, Link->UsingItemB. Only the last weapon used is preserved, so these are pointless. -Z 28/Dec/2016
  556. Fixed Link->UsingItem. Works. -Z 28/Dec/2016
  557. Added Link->Attack : I thought this would show the sprite ID of the weapon, but IDK what this value is at present. -Z
  558. Link->SetLinkTile seems to still be off. i sets a tile, but the value is wrong. -Z 28/Dec/2016
  559. Link->GetLinkTile() seems to be right and proper now. -Z 28/Dec/2016
  560. ZC should now run in windowed mode by default, and not fullscreen. -Z 28/Dec/2016
  561. Fixed itemdata->CSet -Z 28/Dec/2016
  562. Created Subscreen Demo
  563. Setting Link->ItemA and Link->ItemB works, however the weapons will not activate (cannot be used) unless they
  564. are assigned in init data, or picked up by touching them. Setting Link->Item[n] = true is insufficient.
  565. Item->Frame does not do what ZScipt.txt claims that it does. This does not appear to be a new bug.
  566.  
  567. //Beta 46
  568. Added int current_item_level(int id) and int LinkClass::weaponattacklevel()
  569. * These will later be used to do weapon defence returns based on weapon level.
  570. Modified Link->ItemA and Link->ItemB to hopefully bypass the issue with not being able to use them once set if
  571. they were not assigned in init data, or picked up manually.
  572. * This seems to have worked.
  573. Added item->ACLock t return the present tick of the animation.
  574.  
  575. //Beta 47
  576. Discarded merge attempt tp build with ag4.4.3 29/DEC/16
  577.  
  578. //Beta 48
  579. Added ffc->ID, to check this->ID and get the screen ref of an ffc from an ffc script. -Z 1/JAN/17
  580. Added itemdata->Flags[5], itemdata->Atributes[10], and itemdata->Sprites[10].
  581. These are mean to replace the individual vars for each of these groups. -Z 1/Jan/2017
  582. * Updated entries for these new values in zscript.txt. -Z 1/Jan/2017
  583. Updated beta ID, and fixed reporting of beta ID in zquest 'About' menu option. -Z 1/Jan/2017
  584. Updated version ID in zquest.txt. -Z 1/Jan/2017
  585. Updated docs. -Z 1/Jan/2017
  586.  
  587. //Beta 49
  588. Fixed how some item editor values are displayed in ZQuest. -Z 3/Jan/17
  589. Added Game->DMapPalette[512] : Allows reading, or setting the level palette. -Z 4/Jan/17
  590. Added Game->SetMessage(int id, int str[]) -Z 4/Jan/17
  591. Added Game->SetDMapName(int dmap, int str[]) -Z 4/Jan/17
  592. Added Game->SetDMapTitle(int dmap, int str[]) -Z 4/Jan/17
  593. Added Game->SetDMapIntro(int dmap, int str[]) -Z 4/Jan/17
  594.  
  595. //Beta 50
  596. Added Game->GreyscaleOn() and Game->GreyscaleOff() -Z 4/Jan/17
  597. These convert the entire display to greyscale, including the subscreens, and all drawn effects, to
  598. replicate Gameboy graphics on demand, do dream sequences, or otherwise provide a greyscale display
  599. without needing to set up palettes for it.
  600. --> This has two bugs:
  601. Bug 1: If greyscale is repeatedly enabled, it can fade the screeen to white, and setting
  602. GreyscaleOff does not reverse it. -Z
  603. --> THis can be fixed by adding a boolean that must be false in order to toggle it on. -Z
  604. Bug 2: If the level alette changes, the data for sprite colours can become incorrect, permanently. -Z
  605. --> This can be fixed by unsetting greyscale mode whenever a palette change otherwise occurs. -Z
  606. --> I would ultimately like to do Game->Monochrome(int base_colour, bool enabled) to do greyscale, plus green, red
  607. and blue monochrome effects.
  608.  
  609. //Beta 51
  610. Added Game->EndSound(int sfx), Game->PauseSound(int sfx), Game->ResumeSound(int sfx), Game->PauseMusic()
  611. and Game->ResumeMusic(). -Z 6/Jan/17
  612. Fixed infinite fade-out with Monochrome. -Z
  613. This fixes perpetual sprite corruption too, but if monochrome is enabled and the game LPal is changed, monochrome
  614. is not disabled for sprites until disabled entirely. Loading a sprite pal into sprites would probably fix it though.-Z
  615. Urgh. Changing LPals when in greyscale, now doesn;t retain when greyscale is disabled. We need to save the latest
  616. pal into the greyscale scratch pal.
  617.  
  618. Now it isn;t possible to change the lpal when greyscale is enabled.
  619. This is the result of adding a greyscale refresh into pal.cpp
  620. Need to find a better solution.
  621.  
  622. Fixed all known issues with Game->GreyScale*() -Z 7/Jan/17
  623.  
  624. //Beta 52
  625. Tried to add Screen->Polygon(), but this isn't possible the way that class ArrayH is set up in the 2.50.x branch.
  626. ..well, it is *possible*, but I need to do it quite differently to how I would do it.
  627. The main issue, is that the zscript array can be of any varying size, and C++ does not permit variable
  628. sized arrays, despite that gcc could compile it with msys. i do not know the best solution to this.
  629. After various attempts, i abandoned the changes and reverted to b51 before doing anything else.
  630. After early b52 abandonment:
  631. Worked on SetLinkTile().
  632. -->Worse than before. The stack is being offset and instructions aren't enqueued propetly when involking this.
  633. Added reservations for ZScript functions, and defined Gleeok's new drawing functions in ffasm.cpp and ffscript.h
  634. so that they are reserved.
  635. Fixed lw->Range. it now works properly for boomerangs, hookshots, and arrows. It does however, require more testing.
  636. Fixed script parser types for itemdata->Flags[], -.Attributres[], and ->Sprites[] -Z 8-Jan-17
  637.  
  638. Added Game->RefFFC, Game->RefItem, Game->RefItemdata, Game->RefLWeapon, Game->RefEWeapon,
  639. Game->RefNPC, Game->SP for the purpose of testing.debugging.
  640. I may add a Debug-> namespace for these, later.
  641.  
  642. Added getters for npc->UID, lweapon->UID, eweapon->UID, and item->UID
  643. Added int Game->GetPointer(bool), bool Game->SetPointer(int)
  644. int ffc->GetPointer(ffc), ffc ffc->SetPointer(int)
  645. int lweapon->GetPointer(lweapon), lweapon lweapon->SetPointer(int)
  646. int eweapon->GetPointer(eweapon), eweapon eweapon->SetPointer(int)
  647. int npc->GetPointer(npc), npc npc>SetPointer(int)
  648. int item->GetPointer(item), item item->SetPointer(int)
  649. int itemdata->GetPointer(itemdata), itemdata itemdata->SetPointer(int)
  650. Split std_functions int separate files. -Z
  651. Game->GDR is in there, but not enabled as it needs to work diffferently. -Z 10-Jan-17
  652. Added Game->SizeOfArrayBool(), SizeOfArrayFFC(), SizeOfArrayNPC(), SizeOfArrayItem(), SizeOfArrayItemdata()
  653. SizeOfArrayLWeapon(), SizeOfArrayEWeapon() -Z 10-Jan-17
  654. Added ZQuest menu: File->Export->2.50.x Quest. This saves a quest so that 2.50.x ZQuest can open it for editing
  655. in qsu format. -Z 12-Jan-17
  656. !WARNING: All new featurs will be lost. Scripts may need to be recompiled, and may misbehave if the quest
  657. is opened in 2.50.x ZC. Old enemy packfile variables are preserved, so this is not a concern, but
  658. enemies lose new properties when converting.
  659. Began working on A string import commend to import an exported string table, with writing starting at a
  660. string index that the user specifies. -Z 12-Jan-17
  661. Changed the load quest dialogue, so that after selecting a sile, the 'OK' button is in focus instead of the load
  662. button. -Z 12-Jan-17
  663. Changed some handling for Link's hitbox to fix a bug with it not being set properly. -Z
  664. Modified the ffscript setters for Link's hitbox and tile size properties to prevent them setting them if extend is not >= 3. -Z
  665. Changed the minimum extend to '1' and defined it. -Z
  666.  
  667. Modified hookshot and did some work on weapons.cpp:
  668. Attempted a fix at hookshot->Range -Z 13-Jan-17
  669. Attempted fix of hookshot not grabbing if set to a diagonal direction in ZScript. -Z 13-Jan-17
  670. Preliminary implementation of ffscriptRules[] and related instructions. -Z 13-Jan-17 (rev 52-Later)
  671. Modified guys.cpp to further respect Link hit offsets and eweapons should now do likewise. -Z 14-Jan-17 (rev 52-Later2)
  672. eweapons may still need to respect Link->HitHeight and HitWidth -Z
  673. Tried (twice) to integrate solidity checks and damage combo checks for a custom Link hitbox. -Z
  674. Stopped writing both partway through. I particularly detest how the engine functions for this read. -Z
  675. I may want to make new functions tha check some user values and then call the system functions, adjusting the values.
  676. -Z 14-Jan-17
  677. Added hotkeys to the colour selector in ZQuest:
  678. Shift+H/Ctl+H : Adjust Hue
  679. Shift+S/Ctl+S : Adjust Saturation
  680. Shift+B/Ctl+B : Adjust Brightness -Z 14/Jan/17
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement