Snippet Field

Executor

I see you
Reaction score
57
So tell me .. what exactly would be the advantage of extending or writing an addon for linked list with my 'extra' methods (this won't even be possible because it is a component and no module!)?

Well as far as I know your 'Event' library is basically not more than a linked list.. am I right? So why not asking the maker of the linked list standard implementation if he could add this functionality to it. (Nothing against your 'Event' library (I like :p), I just used it to underline my statement)
Adding this would remove your highly praised modularity of the linked list standard implementation.
 

Jesus4Lyf

Good Idea™
Reaction score
397
Premise of what I'm saying:
If this has ( (functionality in Linked List Module) + (functionality that is probably only useful for your system) ) then this is a lame thing to approve. If this has ( (functionality in Linked List Module) + (maybe functionality that is probably only useful for your system) + (functionality that is really useful for everyone else as well) ) then this can get approved.

Otherwise, let's try to have your system either require no linked list component (just embed stuff) or let's have your system use Linked List Module? Do you see where I'm coming from? :)
 

Executor

I see you
Reaction score
57
So you want to know examples which show that this component does have a sense?

=>

Recycling Systems (for ex. a Timer System):
Code:
function NewTimer..
   if timer_field.empty() then
       return createtimer()
   else
       return timer_field.take()
   endif
endfunction

Code:
function ReleaseTimer .. timer t
   call timer_field.add(t)
endfunction

or

You want to display some information in intervals:
Code:
function display_help
    loop
        exitwhen string_help.empty()
        call BJDebugMsg(string_help.take())
        call TriggerSleepAction(5.)
    endloop
endfunction

or

some kind of order system:
Code:
function neworder takes order o, boolean important
    if order_field.empty() then
        call o.start()
    else order_field.contains(o) then
        call order_field.deleteValues(o,false)
    endif
    if important then
        call order_field.addFirst(o)
    else
        call order_field.addLast(o)
    endif   
endfunction

the usage of field makes code easier to read and in some cases more efficient, because of not using an array but a linked list.
 

Jesus4Lyf

Good Idea™
Reaction score
397
All of those can be done with the linked list module. The only unfortunate thing is it would not inline so nicely.

Hmm. Actually, after thinking for a moment...

The order system couldn't be done well with this because only the order id could be stored? With a struct that is linked up, you can store target x/y and order type, etc. If you're using an order struct, then it is less efficient with no advantage.

The display list is a mediocre example.

There are advantages to using the Recycle system approved on TH instead of writing it yourself in your system/map.

Having a list of primitive WC3 types isn't that useful.
 

Executor

I see you
Reaction score
57
Well its true that you can solve all problems Field can solve on another maybe more efficient way. But its always a simplification of your code!

I mean there are also some snippets - systems out there, which just simplify and shorten your code.
 

Executor

I see you
Reaction score
57
Finally it's enough .. you can GY as you want to so much!
I just try to help with my posts, but you seem to just decry my snippet.

I know that this is a useful system for code simplification and yea as its basically 'only' a linked list which allows you to fire your linked list standard implementation - cannon on every problem my component could solve.

Greetz.
 
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