Time for Blizzard to release another patch, I say.

Jesus4Lyf

Good Idea™
Reaction score
397
5 minutes ago, I thought I'd try something new.

Azlier. <3
Typecasting from nothing still works. Our research was not in vain.
JASS:
function ReturnI takes integer i returns integer
    return i
endfunction
function ReturnB takes boolean b returns boolean
    return b
endfunction
function I2B takes integer i returns boolean
    call ReturnI(i)
    if i==0 then
        return false
    endif
endfunction
function B2I takes boolean b returns integer
    call ReturnB(b)
    if b==false then
        return 0
    endif
endfunction
function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing
    call BJDebugMsg(I2S(B2I(I2B(50))))
endfunction

At the end of 1.23, we found that typecasting from nothing returns the last item returned. We joked about optimising TimerUtils with it (by typecasting from TimerStart(CreateTimer... returning the timer in H2I).

So um. There's a nice typecast integer to boolean. I thought this may work and it does.
 

Azlier

Old World Ghost
Reaction score
461
Blizzfail 5.0 detected.

>At the end of 1.23, we found that typecasting from nothing returns the last item returned.

...We?
 

Renendaru

(Evol)ution is nothing without love.
Reaction score
309
God Jesus, stop doing this!
 

Narks

Vastly intelligent whale-like being from the stars
Reaction score
90
PATCH NOTES:
- Custom maps have been disabled.
- Also the game.
 

Jesus4Lyf

Good Idea™
Reaction score
397
Touché. T'was you.

Of course, Blizzard doesn't need to fix this. They already protected code variables.
JASS:
function ReturnC takes code c returns code
    return c
endfunction
function C2I takes code c returns integer
    call ReturnC(c)
    if c==null then
        return 0
    endif
endfunction

You will find it returns 0 (even as it did in the old return bug in 1.23b/1.24) - which proves that none of fixing the return bug was even necessary (unless someone can bring something to my attention which says otherwise).

Edit:
By the way, this works as I thought (I2C):
JASS:
function ReturnI takes integer i returns integer
    return i
endfunction
function ReturnB takes boolean b returns boolean
    return b
endfunction
function ReturnC takes code c returns code
    return c
endfunction
function I2B takes integer i returns boolean
    call ReturnI(i)
    if i==0 then
        return false
    endif
endfunction
function B2I takes boolean b returns integer
    call ReturnB(b)
    if b==false then
        return 0
    endif
endfunction
function C2I takes code c returns integer
    call ReturnC(c)
    if c==null then
        return 0
    endif
endfunction
function I2C takes integer i returns code
    call ReturnI(i)
    if false then
        return null
    endif
endfunction
function Sup takes nothing returns nothing
    call BJDebugMsg(&quot;Sup&quot;)
endfunction
function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing
    call BJDebugMsg(I2S(B2I(I2B(50))))
    call BJDebugMsg(I2S(C2I(function Trig_Untitled_Trigger_001_Actions)))
    set udg_kk=CreateTrigger()
    call TriggerAddAction(udg_kk,ReturnC(I2C(C2I(function Sup))))
    call TriggerExecute(udg_kk)
endfunction

//===========================================================================
function InitTrig_Untitled_Trigger_001 takes nothing returns nothing
    set gg_trg_Untitled_Trigger_001 = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_Untitled_Trigger_001, 0.50 )
    call TriggerAddAction( gg_trg_Untitled_Trigger_001, function Trig_Untitled_Trigger_001_Actions )
endfunction
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
Blizzfail 5.0 detected.

>At the end of 1.23, we found that typecasting from nothing returns the last item returned.

...We?

Hey look, guys! I can create something from nothing! That makes me God. :nuts:

^ That line amused me a lot. :thup:
So, with this, we can return the last returned return? Wow, that's confusing...
 

Azlier

Old World Ghost
Reaction score
461
No. This is the return bug. Plain and simple. It is one less function call efficient then the original, and this works on patch 1.24b.
 

emootootoo

Top Banana
Reaction score
51
can you delete this and repost it after the d2 patch comes out

(just in case they decide to fix it for completeness)
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
Because Warcraft III is more fun to mess with. :p
 

Jesus4Lyf

Good Idea™
Reaction score
397
I wander if people will say they found this before you.
XD

Azlier Trigger Attachment! (ATA)
JASS:
function ReturnI takes integer i returns integer
    return i
endfunction
function I2B takes integer i returns boolean
    call ReturnI(i)
    if false then
        return false
    endif
endfunction
function SetTriggerData takes trigger trig, integer data returns nothing
    call TriggerWaitOnSleeps(trig,I2B(data))
endfunction
function GetTriggerData takes trigger trig returns integer
    call IsTriggerWaitOnSleeps(trig)
    if false then
        return 0
    endif
endfunction

Try it out. It works. :D (Don't use it.)

And this was the lol version of TU:
JASS:
function Timer takes code handlerFunc, real timeout returns integer
    call TimerStart(CreateTimer(),timeout,true,handlerFunc)
    if false then
        return 0
    endif
endfunction
function ExpiringTimer takes nothing returns integer
    call GetExpiredTimer()
    if false then
        return 0
    endif
endfunction

The integer returned by the function is a timer typecasted to integer. So you attach to that integer. Don't use it. It's just posted for fun. :)
 

UndeadDragon

Super Moderator
Reaction score
447
J4L just owned Blizzard for 100 gold!
 

Vexorian

Why no custom sig?
Reaction score
187
hehe contacted blizzard about it and about something else I found in another place.

This means I'll have a new chance to demmand them to fix the silly boolexpr bug...
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top