src/waypoint.cpp
changeset 7597 73cfa9943246
parent 7593 cfce84f8995c
child 7877 eca84d5e568a
equal deleted inserted replaced
7596:c145bb65405e 7597:73cfa9943246
   369 {
   369 {
   370 	Waypoint *wp;
   370 	Waypoint *wp;
   371 
   371 
   372 	if (!IsValidWaypointID(p1)) return CMD_ERROR;
   372 	if (!IsValidWaypointID(p1)) return CMD_ERROR;
   373 
   373 
       
   374 	wp = GetWaypoint(p1);
       
   375 	if (!CheckTileOwnership(wp->xy)) return CMD_ERROR;
       
   376 
   374 	if (!StrEmpty(_cmd_text)) {
   377 	if (!StrEmpty(_cmd_text)) {
   375 		if (!IsUniqueWaypointName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
   378 		if (!IsUniqueWaypointName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
   376 
   379 
   377 		StringID str = AllocateName(_cmd_text, 0);
   380 		StringID str = AllocateName(_cmd_text, 0);
   378 
   381 
   379 		if (str == 0) return CMD_ERROR;
   382 		if (str == 0) return CMD_ERROR;
   380 
   383 
   381 		if (flags & DC_EXEC) {
   384 		if (flags & DC_EXEC) {
   382 			wp = GetWaypoint(p1);
       
   383 			if (wp->string != STR_NULL) DeleteName(wp->string);
   385 			if (wp->string != STR_NULL) DeleteName(wp->string);
   384 
   386 
   385 			wp->string = str;
   387 			wp->string = str;
   386 			wp->town_cn = 0;
   388 			wp->town_cn = 0;
   387 
   389 
   390 		} else {
   392 		} else {
   391 			DeleteName(str);
   393 			DeleteName(str);
   392 		}
   394 		}
   393 	} else {
   395 	} else {
   394 		if (flags & DC_EXEC) {
   396 		if (flags & DC_EXEC) {
   395 			wp = GetWaypoint(p1);
       
   396 			if (wp->string != STR_NULL) DeleteName(wp->string);
   397 			if (wp->string != STR_NULL) DeleteName(wp->string);
   397 
   398 
   398 			MakeDefaultWaypointName(wp);
   399 			MakeDefaultWaypointName(wp);
   399 			UpdateWaypointSign(wp);
   400 			UpdateWaypointSign(wp);
   400 			MarkWholeScreenDirty();
   401 			MarkWholeScreenDirty();