User Tag List

Results 1 to 5 of 5

Thread: [2.future] Beta Releases

  1. #1
    The Timelord
    QDB Manager
    ZC Developer
    ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,364
    Mentioned
    110 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,535
    Level
    21
    vBActivity - Bars
    Lv. Percent
    23.72%

    [2.future] v2.54 Beta Releases

    ZC [2.future] v2.54
    You want betas?! We have betas!

    If anyone wants to play with it, you can download the beta for Windows (latest, beta 35) here.

    The source package for this build is here.

    This includes everything from the 2.50.x branch of ZC as of the first Gamma (RC), so most fixes for 2.50.3, plus a few additions.

    What is known to work, at present, are the following:

    ZQuest

    The Item Editor now allows editing all of the options, and settings for custom item classes, and item classes that had restricted the editable fields in prior versions of ZC. This is linked to the new itemdata variables in ZScript, so that it is possible to make scripts that allow extremely easy user-configuration of custom items, and their sprites, effects, and such.



    The Enemy Editor now has a third tab, 'Defense 3', in which you can assign the defence attributes for each of the ten script weapon types, individually.

    In prior ZC versions, you could not separately define defence types for the 'LW_SCRIPT' weapons. Thus, if you wanted to use an electricity weapon, or an ice weapon, you were stuck playing around, juggling defence types, or manually scripting enemies to handle these.



    This took some effort, I'll admit. Older quests will automatically load the generic 'Script' weapon defence into each of the ten slots, and I have put some safeguards in place to help ensure that older quests don't break; but no-one is perfect, and I'll admit that this needs some extra testing with older quests.

    You can also define these by script, using the new npc array npc->ScriptDefense[10]. As always, the docs are updated, and you can read ChangeLog.txt if you want to laugh at my pain, and suffering; and the grief involved in setting this up.

    Note: Build 35 changes the quest format to support the script defence types. Quests made in b35and later will not load properly in earlier betas of 2.54.

    As of beta 40, there are also some new defense results, including double-damage, triple-damage, and some more-exotic types, such as 'Trigger Screen Secrets'.

    ZScript
    itemdata is wholly revised, with a plethora of new variables, including the often requested 'ID'.
    The ZQuest Item Editor has also be revamped, to allow the user to set any of the options, for custom item class items, or essentially anything, ensuring that these flags, and values are always available.

    The user arrays: npc->Misc[], Link->Misc[], lweapon->Misc[], eweapon->Misc[], and item->Misc[] are all now a size of [32], rather than [16]. The size of ffc->Misc[16] remains unchanged, for memory conservation reasons, as does Screen->D[8] (for the same reasons).

    Screen->DrawBitmapEx
    This is a new bitmap drawing handler, with multiple modes, including translucent, flip, lit, and pivot.

    Link->Diagonal
    Manually enable or disable diagonal movement by script.
    That's right: I've dared to work on link.cpp.

    Link->Eaten
    Returns non-zero if Link is inside a LikeLike, or similar enemy.

    Link->BigHitbox
    Manually change if Link uses the 'big hitbox' drawing mode.

    Game->CappedFPS
    This returns if the game is capped. If a player 'uncaps' either by pressing the Tilde key, or by pressing F1 (or disabling throttle in the menus), this function will return false.
    This allows you to prohibit a player from using uncapping to quickly regenerate health, or magic.

    OverlayTile(int first, int second)
    This allows you to overlay one tile onto another. For example, if you want to give Link a hat, you can overlay a tile with the hat, onto all Link tiles. This works by masking out colour 0, and drawing every other colour from the tile 'second' to the tile 'first'.

    Screen->ZapIn
    Screen->ZapOut
    Screen->WavyIn
    Screen->WavyOut
    Screen->OpeningWipe
    Calls the internal animations, without warping.

    int Link->WarpSound
    int Link->WarpEffect
    int Link->UseWarpReturn
    int Link->SideWarpSounds
    int Link->WarpPitWarpSounds
    New Link variables to give sound effects, and visuals to various warps.

    Link->Extend
    Manually set, or get the *Extend value for Link's sprite. This is still a bit buggy.

    npc->ScriptDefense[10]
    Used to set defences for the ten script weapon types, individually.

    String Control Codes
    /26/dmap/screen -> Warp Link
    /27/dmap/screen/return
    /28/dmap/screen/return/sound
    /29/dmap/screen/return/sound/visual_effect
    /18/register/value -> Set Screen->D[]
    /19/screen/register/value -> Set Screen->D[] for 'screen' on the current DMap
    /23/dmap/screen/register/value -> Set Screen->D[] for 'screen' on 'dmap'

    We might swap 23 into 19, and remove the one that does another screen on the current dmap. Likewise, we may trim warps down by one, or two, in the future.
    Enemy Editor
    The Enemy Editor now has a third tab, 'Defense 3', that allows you to configure defence settings for all ten Script Weapon types, individually.

    Other new commands are partially implemented, but do nothing:
    Game->GetDMapScreenDoor
    Game->SetDMapScreenDoor
    Game->GetDMapScreenState
    Game->SetDMapScreenState


    Link->SetTile(int,int,int,int)
    Manually change the tile associated with each of Link's sprites.

    Link->GetTile(int,int,int)
    Read the tile associated with each of Link's sprites.

    Link->SetLinkExtend(int,int,int)
    Manually change the *Extend value associated with each of Link's sprites.

    Link->GetLinkExtend(int,int)
    Read the *Extend value associated with each of Link's sprites.

    Screen->BitmapQuad()
    This is like Quad, but it renders bitmaps as textures, for the purpose of doing Mode 7 effects. It does not work properly at present.

    For more information, read the included zscript.txt or see the file 2.54_New-ZScript.txt if you only wish to view the details for new instructions.

    This includes some test files, the 'std_update' pack for 2.future, and other included headers, and miscellaneous files.

    I do not yet know which updates/changes from this package will be pulled into full ZC builds, but if you want something new to play with in the interim, here's your chance.

    Change Log
    Spoiler: show

    Code:
    //Beta 1
    
    Added new ZScript commands:
    ** *Game->CappedFPS
    ** *OverlayTile(int first, int second)
    ** *Game->GetDMapScreenDoor
    ** *Game->SetDMapScreenDoor
    ** *Game->GetDMapScreenState
    ** *Game->SetDMapScreenState
    Added using bitmaps to Screen->Quad as textures.
    
    //Beta 2
    Updated Build to 30, and set version as 254
    Fixed missing entry for THROTTLEFPS in the bytecode.
    Tried addin additional bitmap draw mode rotate_sprite_trans: This allegro function call would not compile. We need to udate allero.
    Added constant TEX_BITMAP to std_constants
    Created test quests for OverlayTile, and Game->CappedFPS
    
    //Beta 3
    Fixed build ID and changed to 31.
    Corrected OOverlayTile
    Updated some instructions.
    Fixed minor oversight in std_functions
    
    //Beta 4
    Added tilde key checking to CappedFPS
    
    //Beta 5
    Began implementing DrawBitmapEx
    
    //Beta 6
    Implemented DrawBitmapEX, with limited modes.
    
    //Beta 7
    Added additional modes to DrawBitmapEX; updated from 13 to 16 args.
    Modified Quad (bitmaps as textures), so it might work now.
    Updated ZScript docs to v0.7.6 to include these additions. 
    
    //Beta 8
    Tried merging the script drawing changes from Gleeok. This did not go well. (WHATNO8)
    
    //Beta 9
    This is forked from Beta 7, not Beta 8.
    Merged some drawing components from allegro 4.4.2 to our 4.2 build.
    This adds the ability to call draw_sprite_ex, which is not ordinarily in allegro 4.2.
    DrawBitmapEx now has some additional modes enabled. 
    Added BitmapQuad(), but it does not work rightly, and it may be unstable.
    Tried to permit reading the entire screen as a render source with DrawBitmapDX, but this did not work.
    Updated ZScript docs to v0.7.7 to include these additions. 
    
    //Beta 10
    Added Link->Diagonal and Link>BigHitbox
    Updated the ZScript docs to v0.7.8 to include these additions. 
    
    Beta 11
    Added ->ID to itemdata
    
    //Beta 12
    Added an entire list of variables to itemdata, as follows:
    //These correspond to the ten pulldown values on the 'data' page. 
    Misc1, Misc2, Misc3, Misc4, Misc5, Misc6, Misc7, Misc8, Misc9, Misc10	
    
    //These correspond to the ten pulldown values on the 'action' page. 
    Attribute1, Attribute2, Attribute3, Attribute4, Attribute5, Attribute6, Attribute7, Attribute8, Attribute9, Attribute10
    
    Modifier //The Link Tile Modifier
    Script //The Action Script
    PScript	 //The Pickup Script
    MagicCost //The MP Cost of the item
    MinHearts //The minimum hearts to pick up the item (e.g. swords in Z1)
    Tile //The tile used by the item
    Flash //Flash, and two-hand. 
    CSet //The item CSet
    AFrames //The number of animation frames
    ASpeed //The animation speed
    Delay //The animation delay
    Updated the ZScript docs to v0.7.9 to include these additions. 
    
    //Beta 13
    Added the missing itemdata flags: Combine, Downgrade, KeepOld, RupeeCost, Edible, GainLower, Flag1, lag2, Flag3, Flag4, Flag5, and 'Unused'.
    Updated the ZScript docs to v0.8.0 to include these additions. 
    
    //Beta 14
    Expanded Link->Misc[16] to Link->Misc[32]
    Expanded lweapon->Misc[16] to lweapon->Misc[32]
    Expanded eweapon->Misc[16] to eweapon->Misc[32]
    Expanded item->Misc[16] to item->Misc[32]
    Expanded npc->Misc[16] to npc->Misc[32]
    
    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. 
    Updated zscript.txt to v0.8.1 to reflect these changes.
    
    //Beta 15
    Added public link var zstringwarp , and an if(zstringwarp) statement to the Link class to support warping by string. -ZoriaRPG
    Added SCCs for Warp, Warp2, and SetScreenD to zstrings. -Dimentio
    Wrote functions for SCC cases MSGC_WARP, MSGC_WARPSQ, MSGC_SETSCRD. -ZoriaRPG
    
    Added Link->UseWarpReturn to ZScript. -ZoriaRPG
    Added handlers in the Link class: setWarpReturnSquare(int), getWarpReturnSquare(), getDirectItem(), getDirectItemA(), getDirectItemB(). -ZoriaRPG
    Added Link->UsingItem, Link->usingItemA, Link->UsingItemB to ZScript. -ZoriaRPG
    ->These should return the item number being used, or -1. 
    ->Setting these does nothing at present. The internal variables appear to never be set?! 
    
    //Beta 16
    Added Link->WarpSound : The user may set this, and if it is not 0, this sound plays during Link->Warp and Link->PitWarp.-ZoriaRPG
    Worked on do_warp()
    Added debug info to do_warp
    
    //Beta 17
    Stopped side warps playing warp sfx. -ZoriaRPG
    Added Link->PlayWarpSound : This enables/prevents a sound from playing even if set. Should override for side warps, etc. 
    Fixed Link->PlayWarpSound. Now it returns properly.  -ZoriaRPG
    Added SCC for Warp without a return square. -ZoriaRPG
    How the hell do we set tmpscr->warpreturnc or why is wrindex=(tmpscr->warpreturnc>>(8+(index*2)))&3; not working?!
    
    New SCCs are:
    
    /23/dmap/screen - Warps to dmap, screen
    /24/dmap/screen/return - Warps to dmap, screen, using return square 'return'; but the return square thing is not working.
    /26/reg/value - Sets Screen->D[reg] = value. 
    
    Added bool isscriptedwarp and associated handlers to link.h and link.cpp. ( LinkClass::getScriptedWarp(), etc.)
    Modified do_warp() and dowarp() to use isscriptedwarp for how warps by script set wtSCROLL warpreturnx[] and warpreturny[], thus:
    	if(get_bit(quest_rules,qr_NOARRIVALPOINT))
                {
                    if ( getScriptedWarp() ){
    			setScriptedWarp(false);
    			wrx=tmpscr->warpreturnx[wrindex];
    			wry=tmpscr->warpreturny[wrindex];
    		}
    		else{
    			wrx=tmpscr->warpreturnx[0];
    			wry=tmpscr->warpreturny[0];
    		}
                }
    	    
    //Beta 18
    Additional work on warping.
    The SCC warps are buged. If the present screen is a screen 8 cave, Link warps into unknown space. -ZoriaRPG
    Added checks for isscriptedwarp to LinkClass::dowarp(int,int)
    
    //Beta 19
    Added Link->WarpEffect to set an in-built effect for Link->Warp -ZoriaRPG
    Added Screen->ZapIn(), Screen->ZapOut, Screen->WavyIn(), Screen->WavyOut, and Screen->OpeningWipe -ZoriaRPG
    	These replicate the animations from tilewarps, to call at any time (without warping).
    Fixed return squares for Link->Warp
    Added additional SCCs for warping, and rewrote some of the old ones.
    Renumbered SCCs for warping (31, 32, 33, 34) and Scren->D (40)
    
    //Beta 20
    Partially rewrote LinkClass::dowarp() to fix sound and dest issues. 
    Renamed bool Link->PlayWarpSound to Link->SideWarpSounds
    Added ClearSCCWarpValues and used it to clean up SCC warps. 
    Added LinkClass::playpitwarpsfx and bool Link->PitWarpSounds to ZScript, to determine if pit warps play a sound
    Added bool LinkClass::ispit , LinkClass:: void getIsPitWarp, bool setIsPitWarp. 
    	These are used to determine if the warp is a ptwarp after all the other vars clear. 
    We need to rewrite PitWarp; eh?
    All new ZScript features, and warp sounds work.
    SCC Warp features still require testing, and debugging. 
    Updated zscript.txt and 2.54_New_Zscript.txt to reflect the changes and additions.
    Updated 'std_constants' with new WARPFX_* values. 
    
    PitWarpSound and SideWarpSound seem to be joined somehow. Check to see if any of the EVENTS in Link.cpp might
    be causing this, such as the event that calls dowarp().
    
    Discovered that zlaunch-w.exe will crash if zquest-w is not in its working path. -ZoriaRPG
    
    //Beta 21
    I appear to have fixed all of the warp sound conflicts, so we shall see what happens. -ZoriaRPG 
    
    //Beta 22
    Saffith pointed out that SCC numbering was overflowing into ASCII escape char space. 
    Fixed new SCC numbering, and rearranged.-Z 15/Dec/2016
    	Changed the SCC IDs for new SCCs as follows:
    	\18 Screen->D
    	\19 SetScreenD(screen,reg,value)
    	\23 SetDmapScreenD(dmap,screen,reg,value)
    
    	\26 Warp(dmap,screen)
    	\27 Warp(dmap,screen,return)
    	\28 Warp(dmap,screen,return,sound)
    	\29 Warp(dmap,screen,return,sound,effect)
    Added Link->Eaten, Link->Extend, Link->SetTile(int,int,int,int) -Z 15/Dec/2016
    Added constants for LSPRITE_* (Link Sprite) and cleaned some things in std_constants.
    
    
    //Beta 23
    Added temporary stuff for Link->SetExtend(int,in6t,int), Link->GetExtend(int,int) -Z
    Fixed Link->Extend not setting all dirs. -Z 15/Dec/2016
    I suggest droping the SCC for GetScreenD, as Screen->D and DMapScreenD should suffice. -Z
    I would also cut two of the warp functions to save space. -Z
    Link->SetTile(i,i,i.i) isn't workin. Saffith says it's because of how Link is drawn. This may be true,
    	but I suspect that my stack functions are also rubbish. -Z 16/Dec/2016
    	These may need to wait until 2.55, as there are more important facets to worry about, when I'm wasting
    	30+ hours recompiling to test changes. -Z 16/Dec/2016
    	I'd still like to partially rewrite pit and side warps, and give each a unique sound var, so that I can
    	dispose of this boolean flag and shared soud silliness. -Z
    Disabled the ability to call Link->GetExtend(i,i) and Link->SetExtend(i,i,i). -Z 16/Dec/2016
    	These were returning errors: 
    		Couldn't find function label #1820
    		Couldn't find function label #1821
    Link->SetTile started generating a SP error. Calling it would hang ZC. Tried a new fix.-Z 16/Dec/2016
    Updated docs. 
    
    //Beta 24
    Worked on Link->SetTile, Link->GetExtend, Link->SetExtend -Z
    
    //Beta 25
    Chaned Link->SetExtend() to Link->GetLinkExtend() and Link->GetExtend() to Link->SetLinkExtend().
    	This should prevent issues with internal labels. -Z
    	
    //Beta 26
    Some minor opcode revisions for GetLinkExtend and SetLinkExtend. Note that they still are not correct, 
    	but they no longer do *nothing at all*. -Z
    Updated docs. 
    Public release.
    
    //Beta 27
    Worked on Set/GetExtend opcodes and entries. Revised get_link_extend to be a binary opcode function. -Z
    Started working on ten script weapon defs. Added enedata_defense3_list, and editor panels to zq_custom.cpp and expanded the 
    	edefd enum for all ten in addition to generic script in zdefs.h. Nothing should be different about guys./h/cpp/. 
    	Edited the jproc dialogue boxes, and spacing for the third defs tab is less than the other two. 
    		-->This is because the other pages fit only nine types per tab. 
    		I should just enlarge the window. -Z
    		Note: I have no updated the weapon damage checking to *do anything with* these new fields, but the user should
    		be able to set the values. 
    		!Adding 'Double Damage' to the list of defense effects would also be nice. 
    		
    		Added scriptdefense[] to npcs, and the related ZScript stuff as n->ScriptDefense[10].
    		Fixed npc->Misc, *weapon->Misc, item->Misc, and Link->Misc in GlobalSymbols.cpp.
    			->I forgot to set their size to 32 there. Fixed now. -Z
    		Added a bunch of stuff to zq_custom.cpp. Might work now. 
    		Modified zq_class.cpp, zdefs.h, guys.h, 
    		Added extra define and enum to zdefs.h for script weapon types. 
    		Added for loops to write to the new array. 
    		-ZoriaRPG 18-Dec-2016
    		
    		For some reason, int writeguys(PACKFILE *f, zquestheader *Header) is preventing npcs from spawning
    		with the new scriptdefense[] values?
    		
    		Something is clearly amiss in either zq_class.cpp or zq_custom.cpp, where the values are set. 
    
    //Beta 28
    Disabled writing scriptdefense[] to the packfile, to allow NPCs to spawn, while we figure out why this is happening. -Z
    Updated docs. 
    
    //beta 29
    
    Added the script defs to the packfile. Saving/Reading them caused massive corruption. -Z
    
    //Beta 30
    Disabled saving script defs set from the editor. 
    	They still work when set by script, but they are not retained with the quest (yet),.. -Z
    Implemented enemy weapon checks for script types in guys.cpp with new functions checking them. -Z
    Setting n->ScriptDefense[] works perfectly, although we will need to add a quest version check
    	to prevent older quests that used the generic defense from obeying segregated defense rules. -Z
    Tested npc->ScriptDefense[] and verified that it works. -Z
    Fixed the item editor field for 'Sound' to display properly. -Z
    
    //Beta 31
    Began adding Link->Action(LA_CASTING)
    Worked on enemy editor stuff.
    
    //Beta 32
    Reverted the enemy editor changes. 
    Trying again.
    
    //Beta 33
    //Based on Beta 30 (Stable)
    Added some casting routines, but these freeze Link, so I disabled them for the present. -Z
    Updated zquest.txt to fix a typo in Misc. Colours. -Z
    
    //Beta 34
    Added new definitions for reading the packfile. if V_GUYS is > 24. 
    Updated V_GUYS to 25
    Fixed the packfile issues in qst.cpp, zq_class.cpp, and finished adding the scrit defences to the ZQ Editor. -Z
    Setting the ten script type defences now works as intended, both from the editor, and from scripts.
    	Requires testing old quests, to see if anything broke. -Z 19/Dec/2016
    Added a method of checking if an old quest is running to deferr the script type defence checks to the generic edefsSCRIPT.
    	THis requires testing. -Z 19/Dec/2016
    Merged the 2.50.3 RC1 allegro config files and such into 2.54. -Z 19/Dec/2016
    New public build candidate.
    Updated docs: Updated zquest.txt with enemy editor changes. -Z
    
    //Beta 35
    Modified the packfile reading so that enemies from older quests will forward their defense[edefSCRIPT] 
    	setting to each of the ten scripdefense[n] indices. This means that in the enemy editor, loading an old
    	quest will push the old values to the new indices. -Z 19/Dec/2016
    Renamed std_constants_2.50.2.zh to std_constants_2.54.zh -Z
    Renamed std_f_2.50unctions.2.zh to std_functions_2.54.zh -Z
    Added setting to std.cfg to disable mods to OnSidePlatform(), despite that the revised function isn't in this build. 
    Fixed AdjacentCombo(int,int,int) in std_functions. -Z
    New public build candidate.


    Otherwise current with 2.50.3G1.

    Brought to you, by:

    [2.future] Dev Staff
    • Dimentio
    • Grayswandir
    • ZoriaRPG


    [2.future] Testers
    • / TBA /


    [2.future] Contributors
    • / TBA /
    Last edited by ZoriaRPG; 12-22-2016 at 03:12 PM.

  2. #2
    The Timelord
    QDB Manager
    ZC Developer
    ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,364
    Mentioned
    110 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,535
    Level
    21
    vBActivity - Bars
    Lv. Percent
    23.72%
    Updated to Beta 35.

  3. #3
    Keese
    Join Date
    Dec 2015
    Posts
    33
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    272
    Level
    6
    vBActivity - Bars
    Lv. Percent
    8.37%
    I'm going to try this out
    however is it possible to add vx and vy for items?

  4. #4
    The Timelord
    QDB Manager
    ZC Developer
    ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,364
    Mentioned
    110 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,535
    Level
    21
    vBActivity - Bars
    Lv. Percent
    23.72%
    Quote Originally Posted by Shadowblitz16 View Post
    I'm going to try this out
    however is it possible to add vx and vy for items?
    Velocity for items? Items don't even have movement properties at present, and I'm not certain what the benefit of this would be. Explain please, how this would be useful.

    I could forsee a slew of bugs caused by giving items velocity and/or acceleration properties.

    You can try Beta51, if you wish. I haven't posted it anywhere yet, and I forgot to update this thread with the one on Pure, so I will likely update both for b51, or b52. Oh, I just noticed that B52 joke there. hah.

    Plenty of new stuff for you to try in beta 51, including the ability to load DMap Level palettes at any time, pause, resume, and end sound effects and music (needs testing), an instant Greyscale mode that affects all palettes, setting DMap titles, names, and intros by script, setting a ZQuest message string by script, other ZScript cleanup, and some minor ZQ changes. Visual, music, audio, and other effects were the focus of betas 49 through 51.

    See the ChangeLog.txt file, 2.54_New_for_Beta_51.txt; and either 2.54_New_ZScript_Shortlist.txt, or 2.54_New_ZScript.txt, for what has changed.

  5. #5
    Keese
    Join Date
    Dec 2015
    Posts
    33
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    272
    Level
    6
    vBActivity - Bars
    Lv. Percent
    8.37%
    well velocity for items would allow something like a shovel script that makes the items fly forward when link digs them up
    I'm sure it would have other uses, however that is the only one I would use it for at the moment

    also I have two more suggestions
    is it possible to add link hitbox and speed variables in this update?
    I don't know what the frequency of zc updates are but I really don't want to wait another 2 years for a update that adds this

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
About us
Armageddon Games is a game development group founded in 1997. We are extremely passionate about our work and our inspirations are mostly drawn from games of the 8-bit and 16-bit era.
Social