… | |
… | |
136 | inline SV *to_sv (unsigned long v) { return newSVuv (v); } |
136 | inline SV *to_sv (unsigned long v) { return newSVuv (v); } |
137 | inline SV *to_sv ( signed long long v) { return newSVval64 (v); } |
137 | inline SV *to_sv ( signed long long v) { return newSVval64 (v); } |
138 | inline SV *to_sv (unsigned long long v) { return newSVval64 (v); } |
138 | inline SV *to_sv (unsigned long long v) { return newSVval64 (v); } |
139 | inline SV *to_sv (float v) { return newSVnv (v); } |
139 | inline SV *to_sv (float v) { return newSVnv (v); } |
140 | inline SV *to_sv (double v) { return newSVnv (v); } |
140 | inline SV *to_sv (double v) { return newSVnv (v); } |
141 | inline SV *to_sv (client_socket *v) { return newSVattachable (v, "cf::client_socket::wrap"); } |
141 | inline SV *to_sv (client * v) { return newSVattachable (v, "cf::client::wrap"); } |
142 | inline SV *to_sv (player * v) { return newSVattachable (v, "cf::player::wrap"); } |
142 | inline SV *to_sv (player * v) { return newSVattachable (v, "cf::player::wrap"); } |
143 | inline SV *to_sv (object * v) { return newSVattachable (v, v && v->type == PLAYER ? "cf::object::player::wrap" : "cf::object::wrap"); } |
143 | inline SV *to_sv (object * v) { return newSVattachable (v, v && v->type == PLAYER ? "cf::object::player::wrap" : "cf::object::wrap"); } |
144 | inline SV *to_sv (maptile * v) { return newSVattachable (v, "cf::map::wrap"); } |
144 | inline SV *to_sv (maptile * v) { return newSVattachable (v, "cf::map::wrap"); } |
145 | inline SV *to_sv (archetype * v) { return newSVptr (v, "cf::arch::wrap"); } |
145 | inline SV *to_sv (archetype * v) { return newSVptr (v, "cf::arch::wrap"); } |
146 | inline SV *to_sv (partylist * v) { return newSVptr (v, "cf::party::wrap"); } |
146 | inline SV *to_sv (partylist * v) { return newSVptr (v, "cf::party::wrap"); } |
… | |
… | |
174 | inline void sv_to (SV *sv, unsigned long &v) { v = SvUV (sv); } |
174 | inline void sv_to (SV *sv, unsigned long &v) { v = SvUV (sv); } |
175 | inline void sv_to (SV *sv, signed long long &v) { v = ( signed long long)SvVAL64 (sv); } |
175 | inline void sv_to (SV *sv, signed long long &v) { v = ( signed long long)SvVAL64 (sv); } |
176 | inline void sv_to (SV *sv, unsigned long long &v) { v = (unsigned long long)SvVAL64 (sv); } |
176 | inline void sv_to (SV *sv, unsigned long long &v) { v = (unsigned long long)SvVAL64 (sv); } |
177 | inline void sv_to (SV *sv, float &v) { v = SvNV (sv); } |
177 | inline void sv_to (SV *sv, float &v) { v = SvNV (sv); } |
178 | inline void sv_to (SV *sv, double &v) { v = SvNV (sv); } |
178 | inline void sv_to (SV *sv, double &v) { v = SvNV (sv); } |
179 | inline void sv_to (SV *sv, client_socket *&v) { v = (client_socket *)SvPTR_ornull (sv, "cf::client_socket"); } |
179 | inline void sv_to (SV *sv, client * &v) { v = (client *)SvPTR_ornull (sv, "cf::client"); } |
180 | inline void sv_to (SV *sv, player * &v) { v = (player *)SvPTR_ornull (sv, "cf::player"); } |
180 | inline void sv_to (SV *sv, player * &v) { v = (player *)SvPTR_ornull (sv, "cf::player"); } |
181 | inline void sv_to (SV *sv, object * &v) { v = (object *)SvPTR_ornull (sv, "cf::object"); } |
181 | inline void sv_to (SV *sv, object * &v) { v = (object *)SvPTR_ornull (sv, "cf::object"); } |
182 | inline void sv_to (SV *sv, archetype * &v) { v = (archetype *)SvPTR_ornull (sv, "cf::arch"); } |
182 | inline void sv_to (SV *sv, archetype * &v) { v = (archetype *)SvPTR_ornull (sv, "cf::arch"); } |
183 | inline void sv_to (SV *sv, maptile * &v) { v = (maptile *)SvPTR_ornull (sv, "cf::map"); } |
183 | inline void sv_to (SV *sv, maptile * &v) { v = (maptile *)SvPTR_ornull (sv, "cf::map"); } |
184 | inline void sv_to (SV *sv, partylist * &v) { v = (partylist *)SvPTR_ornull (sv, "cf::party"); } |
184 | inline void sv_to (SV *sv, partylist * &v) { v = (partylist *)SvPTR_ornull (sv, "cf::party"); } |
… | |
… | |
244 | // va_arg (object *) when void * is passed is an XSI extension |
244 | // va_arg (object *) when void * is passed is an XSI extension |
245 | sv = to_sv (va_arg (ap, maptile *)); |
245 | sv = to_sv (va_arg (ap, maptile *)); |
246 | break; |
246 | break; |
247 | |
247 | |
248 | case DT_SOCKET: |
248 | case DT_SOCKET: |
249 | sv = to_sv (va_arg (ap, client_socket *)); |
249 | sv = to_sv (va_arg (ap, client *)); |
250 | break; |
250 | break; |
251 | |
251 | |
252 | case DT_PLAYER: |
252 | case DT_PLAYER: |
253 | sv = to_sv (va_arg (ap, player *)); |
253 | sv = to_sv (va_arg (ap, player *)); |
254 | break; |
254 | break; |
… | |
… | |
1658 | for (object *op = object::first; op; op = op->next) |
1658 | for (object *op = object::first; op; op = op->next) |
1659 | reattach (op); |
1659 | reattach (op); |
1660 | } |
1660 | } |
1661 | |
1661 | |
1662 | bool |
1662 | bool |
1663 | add_client_socket (int fd, const char *peername) |
1663 | add_client (int fd, const char *peername) |
1664 | |
1664 | |
1665 | NV floor (NV x) |
1665 | NV floor (NV x) |
1666 | |
1666 | |
1667 | NV ceil (NV x) |
1667 | NV ceil (NV x) |
1668 | |
1668 | |
… | |
… | |
2422 | |
2422 | |
2423 | MODULE = cf PACKAGE = cf::settings |
2423 | MODULE = cf PACKAGE = cf::settings |
2424 | |
2424 | |
2425 | INCLUDE: $PERL genacc Settings ../include/global.h | |
2425 | INCLUDE: $PERL genacc Settings ../include/global.h | |
2426 | |
2426 | |
2427 | MODULE = cf PACKAGE = cf::client_socket |
2427 | MODULE = cf PACKAGE = cf::client |
2428 | |
2428 | |
2429 | INCLUDE: $PERL genacc client_socket ../include/newserver.h | |
2429 | INCLUDE: $PERL genacc client ../include/client.h | |
2430 | |
2430 | |
2431 | int invoke (client_socket *ns, int event, ...) |
2431 | int invoke (client *ns, int event, ...) |
2432 | CODE: |
2432 | CODE: |
2433 | if (KLASS_OF (event) != KLASS_SOCKET) croak ("event class must be SOCKET"); |
2433 | if (KLASS_OF (event) != KLASS_SOCKET) croak ("event class must be SOCKET"); |
2434 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); |
2434 | AV *av = (AV *)sv_2mortal ((SV *)newAV ()); |
2435 | for (int i = 2; i < items; i++) av_push (av, SvREFCNT_inc (ST (i))); |
2435 | for (int i = 2; i < items; i++) av_push (av, SvREFCNT_inc (ST (i))); |
2436 | RETVAL = INVOKE_((event_type)event, ARG_SOCKET (ns), ARG_AV (av)); |
2436 | RETVAL = INVOKE_((event_type)event, ARG_SOCKET (ns), ARG_AV (av)); |
2437 | OUTPUT: RETVAL |
2437 | OUTPUT: RETVAL |
2438 | |
2438 | |
2439 | SV *registry (client_socket *ns) |
2439 | SV *registry (client *ns) |
2440 | |
2440 | |