void testThread(int n, ServiceLocator* aDifferentThreadsLocator) { ServiceLocator* loc = ServiceLocator::getDefaultLocator(); ServiceLocator* loc2 = ServiceLocator::getDefaultLocator(); Timer* timer1 = loc->locateTimerService(); Timer* timer2 = loc2->locateTimerService(); MessageService* mes1 = loc->locateMessageService(); MessageService* mes2 = loc2->locateMessageService(); assert(mes1 == mes2); mes1->publish("someMessage", StringMap()); MessageService* mes3 = aDifferentThreadsLocator->locateMessageService(); mes3->publish("aMessage", StringMap()); EventQueue* eq = loc->locateEventService(); eq->pushTimerEvent(loc->locateTimerService()->getTimeStamp()); assert(loc == loc2); assert(loc != aDifferentThreadsLocator); assert(loc != NULL); assert(aDifferentThreadsLocator != NULL); assert(timer1 == timer2); assert(mes1 != NULL); assert(mes3 != NULL); assert(mes1 != mes3); }
void TranslatePunc(char *tgt, char *src, int srclang, int tgtlang) { StringCpy(tgt, src, PUNCLEN); if (srclang == F_ENGLISH && tgtlang == F_FRENCH) { StringMap(tgt, PUNCT_ENGLISH, PUNCT_FRENCH); } else if (srclang == F_FRENCH && tgtlang == F_ENGLISH) { StringMap(tgt, PUNCT_FRENCH, PUNCT_ENGLISH); } }
StringMap MeiqueCache::package(const std::string& pkgName) const { std::map<std::string, StringMap>::const_iterator it = m_packages.find(pkgName); if (it != m_packages.end()) return it->second; return StringMap(); }
/* Display a nicely formatted map with a legend */ void perform_map( struct char_data *ch, char *argument, bool worldmap ) { int size = DEFAULT_MAP_SIZE; int centre, x, y, min, max; char arg1[MAX_INPUT_LENGTH], arg2[MAX_INPUT_LENGTH], buf[MAX_STRING_LENGTH], buf1[MAX_STRING_LENGTH], buf2[MAX_STRING_LENGTH]; int count = 0; int ew_size=0, ns_size=0; int mapshape = MAP_CIRCLE; two_arguments( argument, arg1 , arg2 ); if(*arg1) { size = atoi(arg1); } if (*arg2) { if (is_abbrev(arg2, "normal")) worldmap=FALSE; else if (is_abbrev(arg2, "world")) worldmap=TRUE; else { send_to_char(ch, "Usage: \tymap <distance> [ normal | world ]\tn"); return; } } if(size<0) { size = -size; mapshape = MAP_RECTANGLE; } size = URANGE(1,size,MAX_MAP_SIZE); centre = MAX_MAP/2; if(worldmap) { min = centre - 2*size; max = centre + 2*size; } else { min = centre - size; max = centre + size; } /* Blank the map */ for (x = 0; x < MAX_MAP; ++x) for (y = 0; y < MAX_MAP; ++y) map[x][y]= (!(y%2) && !worldmap) ? DOOR_NONE : SECT_EMPTY; /* starts the mapping with the centre room */ MapArea(IN_ROOM(ch), ch, centre, centre, min, max, ns_size/2, ew_size/2, worldmap); /* marks the center, where ch is */ map[centre][centre] = SECT_HERE; /* Feel free to put your own MUD name or header in here */ send_to_char(ch, " \tb--\tB= \tCLuminari Map System \tB=\tb--\tn\r\n" "\tD .-.__--.,--.__.-.\tn\r\n" ); count += sprintf(buf + count, "\tn\tn\tn%s Up\\\\", door_info[NUM_DOOR_TYPES + DOOR_UP].disp); count += sprintf(buf + count, "\tn\tn\tn%s Down\\\\", door_info[NUM_DOOR_TYPES + DOOR_DOWN].disp); count += sprintf(buf + count, "\tn%s You\\\\", map_info[SECT_HERE].disp); count += sprintf(buf + count, "\tn%s Inside\\\\", map_info[SECT_INSIDE].disp); count += sprintf(buf + count, "\tn%s City\\\\", map_info[SECT_CITY].disp); count += sprintf(buf + count, "\tn%s Field\\\\", map_info[SECT_FIELD].disp); count += sprintf(buf + count, "\tn%s Forest\\\\", map_info[SECT_FOREST].disp); count += sprintf(buf + count, "\tn%s Hills\\\\", map_info[SECT_HILLS].disp); count += sprintf(buf + count, "\tn%s Mountain\\\\", map_info[SECT_MOUNTAIN].disp); count += sprintf(buf + count, "\tn%s Water\\\\", map_info[SECT_WATER_SWIM].disp); count += sprintf(buf + count, "\tn%s Deep Water\\\\", map_info[SECT_WATER_NOSWIM].disp); count += sprintf(buf + count, "\tn%s Air\\\\", map_info[SECT_FLYING].disp); count += sprintf(buf + count, "\tn%s Underwater\\\\", map_info[SECT_UNDERWATER].disp); count += sprintf(buf + count, "\tn%s Zone Entry\\\\", map_info[SECT_ZONE_START].disp); count += sprintf(buf + count, "\tn%s Road N-S\\\\", map_info[SECT_ROAD_NS].disp); count += sprintf(buf + count, "\tn%s Road E-W\\\\", map_info[SECT_ROAD_EW].disp); count += sprintf(buf + count, "\tn%s Intersect\\\\", map_info[SECT_ROAD_INT].disp); count += sprintf(buf + count, "\tn%s Desert\\\\", map_info[SECT_DESERT].disp); count += sprintf(buf + count, "\tn%s Ocean\\\\", map_info[SECT_OCEAN].disp); count += sprintf(buf + count, "\tn%s Marsh\\\\", map_info[SECT_MARSHLAND].disp); count += sprintf(buf + count, "\tn%s High Mount\\\\", map_info[SECT_HIGH_MOUNTAIN].disp); count += sprintf(buf + count, "\tn%s Planes\\\\", map_info[SECT_PLANES].disp); strcpy(buf, strfrmt(buf, LEGEND_WIDTH, CANVAS_HEIGHT + 2, FALSE, TRUE, TRUE)); /* Start with an empty column */ strcpy(buf1, strfrmt("",0, CANVAS_HEIGHT + 2, FALSE, FALSE, TRUE)); /* Paste the legend */ strcpy(buf2, strpaste(buf1, buf, "\tD | \tn")); /* Set up the map */ memset(buf, ' ', CANVAS_WIDTH); count = (CANVAS_WIDTH); if(worldmap) count += sprintf(buf + count , "\r\n%s", WorldMap(centre, size, mapshape, MAP_NORMAL)); else count += sprintf(buf + count , "\r\n%s", StringMap(centre, size)); memset(buf + count, ' ', CANVAS_WIDTH); strcpy(buf + count + CANVAS_WIDTH, "\r\n"); /* Paste it on */ strcpy(buf2, strpaste(buf2, buf, "\tD | \tn")); /* Paste on the right border */ strcpy(buf2, strpaste(buf2, buf1, " ")); /* Print it all out */ send_to_char(ch, "%s", buf2); send_to_char(ch, "\tD `.-.__--.,-.__.-.-'\tn\r\n"); return; }