… | |
… | |
122 | |
122 | |
123 | return sv; |
123 | return sv; |
124 | } |
124 | } |
125 | #endif |
125 | #endif |
126 | |
126 | |
127 | static noinline utf8_string |
127 | noinline utf8_string |
128 | cfSvPVutf8_nolen (SV *sv) |
128 | cfSvPVutf8_nolen (SV *sv) |
129 | { |
129 | { |
130 | SvGETMAGIC (sv); |
130 | SvGETMAGIC (sv); |
131 | |
131 | |
132 | if (SvPOK (sv)) |
132 | if (SvPOK (sv)) |
… | |
… | |
2536 | |
2536 | |
2537 | # worst xs function of my life |
2537 | # worst xs function of my life |
2538 | bool |
2538 | bool |
2539 | _create_random_map (\ |
2539 | _create_random_map (\ |
2540 | maptile *self,\ |
2540 | maptile *self,\ |
2541 | utf8_string wallstyle,\ |
2541 | SV *options,\ |
2542 | utf8_string wall_name,\ |
2542 | utf8_string wall_name,\ |
2543 | utf8_string floorstyle,\ |
|
|
2544 | utf8_string monsterstyle,\ |
2543 | utf8_string monsterstyle,\ |
2545 | utf8_string treasurestyle,\ |
2544 | utf8_string treasurestyle,\ |
2546 | utf8_string layoutstyle,\ |
2545 | utf8_string layoutstyle,\ |
2547 | utf8_string doorstyle,\ |
2546 | utf8_string doorstyle,\ |
2548 | utf8_string decorstyle,\ |
2547 | utf8_string decorstyle,\ |
2549 | utf8_string miningstyle,\ |
|
|
2550 | utf8_string origin_map,\ |
2548 | utf8_string origin_map,\ |
2551 | utf8_string final_map,\ |
2549 | utf8_string final_map,\ |
2552 | utf8_string exitstyle,\ |
|
|
2553 | utf8_string this_map,\ |
2550 | utf8_string this_map,\ |
2554 | utf8_string exit_on_final_map,\ |
2551 | utf8_string exit_on_final_map,\ |
2555 | int xsize,\ |
2552 | int xsize,\ |
2556 | int ysize,\ |
2553 | int ysize,\ |
2557 | int expand2x,\ |
2554 | int expand2x,\ |
… | |
… | |
2571 | U32 random_seed,\ |
2568 | U32 random_seed,\ |
2572 | val64 total_map_hp,\ |
2569 | val64 total_map_hp,\ |
2573 | int map_layout_style,\ |
2570 | int map_layout_style,\ |
2574 | int treasureoptions,\ |
2571 | int treasureoptions,\ |
2575 | int symmetry_used,\ |
2572 | int symmetry_used,\ |
2576 | region *region,\ |
2573 | region *region\ |
2577 | utf8_string custom\ |
|
|
2578 | ) |
2574 | ) |
2579 | CODE: |
2575 | CODE: |
2580 | { |
2576 | { |
2581 | random_map_params rmp; |
2577 | random_map_params rmp; |
2582 | |
2578 | |
2583 | assign (rmp.wallstyle , wallstyle); |
2579 | rmp.hv = (HV *)SvREFCNT_inc_NN (SvRV (options)); |
|
|
2580 | |
2584 | assign (rmp.wall_name , wall_name); |
2581 | assign (rmp.wall_name , wall_name); |
2585 | assign (rmp.floorstyle , floorstyle); |
|
|
2586 | assign (rmp.monsterstyle , monsterstyle); |
2582 | assign (rmp.monsterstyle , monsterstyle); |
2587 | assign (rmp.treasurestyle , treasurestyle); |
2583 | assign (rmp.treasurestyle , treasurestyle); |
2588 | assign (rmp.layoutstyle , layoutstyle); |
2584 | assign (rmp.layoutstyle , layoutstyle); |
2589 | assign (rmp.doorstyle , doorstyle); |
2585 | assign (rmp.doorstyle , doorstyle); |
2590 | assign (rmp.decorstyle , decorstyle); |
2586 | assign (rmp.decorstyle , decorstyle); |
2591 | assign (rmp.miningstyle , miningstyle); |
|
|
2592 | assign (rmp.exitstyle , exitstyle); |
|
|
2593 | assign (rmp.exit_on_final_map, exit_on_final_map); |
2587 | assign (rmp.exit_on_final_map, exit_on_final_map); |
2594 | |
2588 | |
2595 | rmp.origin_map = origin_map; |
2589 | rmp.origin_map = origin_map; |
2596 | rmp.final_map = final_map; |
2590 | rmp.final_map = final_map; |
2597 | rmp.this_map = this_map; |
2591 | rmp.this_map = this_map; |
… | |
… | |
2615 | rmp.total_map_hp = (uint64_t) total_map_hp; |
2609 | rmp.total_map_hp = (uint64_t) total_map_hp; |
2616 | rmp.map_layout_style = map_layout_style; |
2610 | rmp.map_layout_style = map_layout_style; |
2617 | rmp.treasureoptions = treasureoptions; |
2611 | rmp.treasureoptions = treasureoptions; |
2618 | rmp.symmetry_used = symmetry_used; |
2612 | rmp.symmetry_used = symmetry_used; |
2619 | rmp.region = region; |
2613 | rmp.region = region; |
2620 | rmp.custom = custom; |
|
|
2621 | |
2614 | |
2622 | RETVAL = self->generate_random_map (&rmp); |
2615 | RETVAL = self->generate_random_map (&rmp); |
2623 | } |
2616 | } |
2624 | OUTPUT: |
2617 | OUTPUT: |
2625 | RETVAL |
2618 | RETVAL |