This is to ensure that all functions that get an IP are getting the same
kind of data (that is, an integer with the bounds of a signed 32 bit
integer) for consistency purposes.
If the first server in the server list does not have all of the
requested fields, it would assume that all of the servers lacked the
requested fields, so it would bail. This will let it keep checking
against ever server and skip the ones without the requested fields.
- Sometimes the game sends port 0 as the port to forward to. Obviously
this isn't right, so *try* to match up the server with something, even
if it may or may not be right. Hopefully it's right.
- Tried to fix friends games in some games. Metroid Prime: Hunters seems
to look for the dwc_pid for a friend, and sometimes the friend never
does a statechanged, so assume that any state except 2 should be added
to the server list.
Something I threw together quickly this morning to make the search
server evaluations work properly. I'd like to build my own AST and
benchmark it with a large server list to see how much slower it is. In
any case, this implementation should usually be reliable despite any
slowness.